+++ /dev/null
-package org.argeo.slc.lib.linux.rpmfactory;
-
-import java.io.File;
-
-import org.argeo.slc.core.execution.tasks.SystemCall;
-
-/** Install an SRPM into a working copy */
-public class ImportSrpm implements Runnable {
- private File baseDir;
- private File srpmFile;
- private RpmBuildEnvironment rpmBuildEnvironment;
-
- public void run() {
- SystemCall rpmQuery = new SystemCall(
- "rpm --queryformat '%{NAME}\n' -qp " + srpmFile);
- String packageName = rpmQuery.function();
-
- File topdir = new File(baseDir, packageName);
-
- // prepare SVN
- // TODO: do it with SVNKit
- topdir.mkdirs();
- new SystemCall("svn add " + topdir).run();
- new SystemCall("svn propset svn:ignore rpm*\nBUILD\nSRPMS\nRPMS " + topdir).run();
- File sourcesDir = new File(topdir, "SOURCES");
- sourcesDir.mkdirs();
- new SystemCall("svn add " + sourcesDir).run();
- new SystemCall("svn propset svn:ignore *gz\n*bz2\n*.zip\n*.jar " + sourcesDir).run();
- File specsDir = new File(topdir, "SPECS");
- specsDir.mkdirs();
- new SystemCall("svn add " + specsDir).run();
-
- // Write rpm config files
- File rpmmacroFile = new File(topdir, "rpmmacros");
- File rpmrcFile = new File(topdir, "rpmrc");
- rpmBuildEnvironment.writeRpmbuildConfigFiles(topdir, rpmmacroFile,
- rpmrcFile);
-
- // Install SRPM
- SystemCall installSrpm = new SystemCall();
- installSrpm.arg("rpm");
- installSrpm.arg("-Uvh");
- installSrpm.arg("--rcfile=" + rpmrcFile.getAbsolutePath());
- installSrpm.arg(srpmFile.getAbsolutePath());
- installSrpm.setExecDir(topdir.getAbsolutePath());
- installSrpm.setLogCommand(true);
- installSrpm.run();
- }
-
- public void setBaseDir(File basedir) {
- this.baseDir = basedir;
- }
-
- public void setSrpmFile(File srpmFile) {
- this.srpmFile = srpmFile;
- }
-
- public void setRpmBuildEnvironment(RpmBuildEnvironment rpmBuildEnvironment) {
- this.rpmBuildEnvironment = rpmBuildEnvironment;
- }
-
-}