public void packageToFile(File packageFile, ScriptUtil.Strategy strategy) throws Exception { File workingDirectoryF = VfsUtil.asFile(workingDirectory); File rpms = new File(workingDirectoryF, "RPMS"); File specsDir = new File(workingDirectoryF, "SPECS"); File tmp = new File(workingDirectoryF, "tmp"); File specFilePath = new File(specsDir, specFile.name + ".spec"); FileUtils.forceMkdir(new File(workingDirectoryF, "BUILD")); FileUtils.forceMkdir(rpms); FileUtils.forceMkdir(new File(workingDirectoryF, "SOURCES")); FileUtils.forceMkdir(specsDir); FileUtils.forceMkdir(new File(workingDirectoryF, "SRPMS")); FileUtils.forceMkdir(tmp); fileCollector.collect(); ScriptUtil.Result result = scriptUtil .createExecution(specFile.name, "rpm", getScripts(), workingDirectoryF, strategy) .execute(); specFile.includePre = result.preInstall; specFile.includePost = result.postInstall; specFile.includePreun = result.preRemove; specFile.includePostun = result.postRemove; specFile.buildRoot = VfsUtil.asFile(fileCollector.getFsRoot()); LineStreamUtil.toFile(specFile, specFilePath); new Rpmbuild() .setDebug(debug) .setBuildroot(VfsUtil.asFile(fileCollector.getFsRoot())) .define("_tmppath " + tmp.getAbsolutePath()) .define("_topdir " + workingDirectoryF.getAbsolutePath()) .define("_rpmdir " + packageFile.getParentFile().getAbsolutePath()) .define("_rpmfilename " + packageFile.getName()) .setSpecFile(specFilePath) .setRpmbuildPath(rpmbuildPath) .buildBinary(); }
public RpmUnixPackage parameters(PackageParameters parameters) { if (parameters.license.isNone()) { throw new MissingSettingException("The project has to specify a license."); } specFile = new SpecFile(); specFile.name = parameters.id; specFile.summary = parameters.name; specFile.description = parameters.description.orSome(""); // TODO: This is not right specFile.license = parameters.license.some(); specFile.buildArch = parameters.architecture.orSome("noarch"); P2<String, String> rpmVersion = getRpmVersion(parameters.version); specFile.version = rpmVersion._1(); specFile.release = rpmVersion._2(); return this; }
public void beforeAssembly(FileAttributes defaultDirectoryAttributes) throws IOException { specFile.beforeAssembly(directory(BASE, new LocalDateTime(), defaultDirectoryAttributes)); fileCollector = new FsFileCollector(workingDirectory.resolveFile("assembly")); }
public UnixPackage group(String group) { specFile.group = group; return this; }
public void apply(F2<UnixFsObject, FileAttributes, FileAttributes> f) { specFile.apply(f); }
public FileCollector addSymlink(UnixFsObject.Symlink symlink) throws IOException { specFile.addSymlink(symlink); fileCollector.addSymlink(symlink); return this; }
public FileCollector addFile(FileObject fromFile, UnixFsObject.RegularFile file) throws IOException { specFile.addFile(file); fileCollector.addFile(fromFile, file); return this; }
public FileCollector addDirectory(UnixFsObject.Directory directory) throws IOException { specFile.addDirectory(directory); fileCollector.addDirectory(directory); return this; }