private void setupSpecFile()

in src/main/java/org/apache/netbeans/nbpackage/rpm/RpmTask.java [277:313]


    private void setupSpecFile(Path image) throws Exception {
        String template = RpmPackager.SPEC_TEMPLATE.load(context());
        String fileList = buildSpecFilesList(image);
        String spec = StringUtils.replaceTokens(template, Map.ofEntries(
                Map.entry("RPM_PACKAGE", packageName()),
                Map.entry("RPM_VERSION", packageVersion()),
                Map.entry("RPM_ARCH", packageArch()),
                Map.entry("RPM_SUMMARY_LINE", context().getValue(NBPackage.PACKAGE_DESCRIPTION)
                        .map(value -> "Summary: " + value)
                        .orElse("")),
                Map.entry("RPM_LICENSE_LINE", context().getValue(RpmPackager.RPM_LICENSE)
                        .map(value -> "License: " + value)
                        .orElse("")),
                Map.entry("RPM_GROUP_LINE", context().getValue(RpmPackager.RPM_GROUP)
                        .map(value -> "Group: " + value)
                        .orElse("")),
                Map.entry("RPM_URL_LINE", context().getValue(NBPackage.PACKAGE_URL)
                        .map(value -> "URL: " + value)
                        .orElse("")),
                Map.entry("RPM_VENDOR_LINE", context().getValue(NBPackage.PACKAGE_PUBLISHER)
                        .map(value -> "Vendor: " + value)
                        .orElse("")),
                Map.entry("RPM_MAINTAINER_LINE", context().getValue(RpmPackager.RPM_MAINTAINER)
                        .map(value -> "Packager: " + value)
                        .orElse("")),
                Map.entry("RPM_RECOMMENDS_LINE", context().getValue(NBPackage.PACKAGE_RUNTIME)
                        .map(value -> "")
                        .orElse("Recommends: java-devel >= 11")),
                Map.entry("RPM_DESCRIPTION", context().getValue(NBPackage.PACKAGE_DESCRIPTION)
                        .orElse("")),
                Map.entry("RPM_FILES", fileList)
        ));
        Path specsDir = image.resolve("SPECS");
        Files.createDirectories(specsDir);
        Path specFile = specsDir.resolve(packageName + ".spec");
        Files.writeString(specFile, spec, StandardOpenOption.CREATE_NEW);
    }