22
33import java .io .File ;
44
5+ import org .redline_rpm .header .Architecture ;
6+ import org .redline_rpm .header .Os ;
7+
8+ import com .netflix .gradle .plugins .rpm .Rpm ;
9+
510import io .github .fvarrui .javapackager .packagers .ArtifactGenerator ;
11+ import io .github .fvarrui .javapackager .packagers .LinuxPackager ;
612import io .github .fvarrui .javapackager .packagers .Packager ;
713import io .github .fvarrui .javapackager .utils .Logger ;
814
@@ -24,9 +30,27 @@ public boolean skip(Packager packager) {
2430 @ Override
2531 protected File doApply (Packager packager ) throws Exception {
2632
27- Logger .warn ("Sorry! " + getArtifactName () + " generation is not yet available" );
33+ LinuxPackager linuxPackager = (LinuxPackager ) packager ;
34+
35+ File appFolder = linuxPackager .getAppFolder ();
36+ String name = linuxPackager .getName ();
37+ String version = linuxPackager .getVersion ();
38+ String description = linuxPackager .getDescription ();
39+ String organizationName = linuxPackager .getOrganizationName ();
40+ File outputDirectory = linuxPackager .getOutputDirectory ();
41+
42+ Rpm rpmTask = new Rpm ();
43+ rpmTask .setPackageName (name );
44+ rpmTask .setPackageDescription (description );
45+ rpmTask .setRelease ("1" );
46+ rpmTask .setArch (Architecture .X86_64 );
47+ rpmTask .setPackager (organizationName );
48+ rpmTask .setOs (Os .LINUX );
49+ rpmTask .into ("/opt/" + name );
50+ rpmTask .from (appFolder );
51+ rpmTask .getActions ().forEach (action -> action .execute (rpmTask ));
2852
29- return null ;
53+ return new File ( outputDirectory , name + "_" + version + ".rpm" ) ;
3054 }
3155
3256}
0 commit comments