Skip to content

Commit bde5ca0

Browse files
committed
U deb and rpm packages generation enabled for different platforms than linux
1 parent 0dde45b commit bde5ca0

File tree

7 files changed

+102
-43
lines changed

7 files changed

+102
-43
lines changed
Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.github.fvarrui.javapackager.gradle;
22

33
import java.io.File;
4+
import java.io.FileFilter;
45
import java.io.IOException;
56
import java.security.NoSuchAlgorithmException;
67

@@ -34,41 +35,46 @@ public boolean skip(Packager packager) {
3435
@Override
3536
protected File doApply(Packager packager) throws Exception {
3637

37-
Logger.warn("Sorry! " + getArtifactName() + " generation is not yet available");
38-
return null;
38+
LinuxPackager linuxPackager = (LinuxPackager) packager;
39+
40+
File appFolder = linuxPackager.getAppFolder();
41+
String name = linuxPackager.getName();
42+
String version = linuxPackager.getVersion();
43+
String description = linuxPackager.getDescription();
44+
String organizationName = linuxPackager.getOrganizationName();
45+
File outputDirectory = linuxPackager.getOutputDirectory();
46+
47+
Builder builder = new Builder();
48+
builder.setType(RpmType.BINARY);
49+
builder.setPlatform(Architecture.X86_64, Os.LINUX);
50+
builder.setPackage(name, version, "1");
51+
builder.setPackager(organizationName);
52+
builder.setDescription(description);
53+
builder.setPrefixes("opt");
54+
55+
// TODO add directories tree and all app files
56+
addDirectoryTree(builder, "", appFolder);
57+
58+
// builder.addFile("HelloWorldMaven/HelloWorldMaven", new File(appFolder,
59+
// "HelloWorldMaven"), 0755);
3960

40-
// LinuxPackager linuxPackager = (LinuxPackager) packager;
41-
//
42-
// File appFolder = linuxPackager.getAppFolder();
43-
// String name = linuxPackager.getName();
44-
// String version = linuxPackager.getVersion();
45-
// String description = linuxPackager.getDescription();
46-
// String organizationName = linuxPackager.getOrganizationName();
47-
// File outputDirectory = linuxPackager.getOutputDirectory();
48-
//
49-
// Builder builder = new Builder();
50-
// builder.setType(RpmType.BINARY);
51-
// builder.setPlatform(Architecture.X86_64, Os.LINUX);
52-
// builder.setPackage(name, version, "1");
53-
// builder.setPackager(organizationName);
54-
// builder.setDescription(description);
55-
// builder.setPrefixes("/opt/" + name);
56-
//
57-
// // TODO add directories tree and all app files
58-
// // builder.addDirectory(appFolder.getAbsolutePath());
59-
// // builder.addFile("HelloWorldMaven/HelloWorldMaven", new File(appFolder,
60-
// // "HelloWorldMaven"), 0755);
61-
//
62-
// builder.build(outputDirectory);
63-
//
64-
// File rpm = new File(outputDirectory, name + "-" + version + "-1.x86_64.rpm");
65-
// if (rpm.exists()) {
66-
// File rpmOutput = new File(outputDirectory, name + "_" + version + ".rpm");
67-
// FileUtils.rename(rpm, rpmOutput.getName());
68-
// return rpmOutput;
69-
// }
70-
//
71-
// return null;
61+
builder.build(outputDirectory);
62+
63+
File rpm = new File(outputDirectory, name + "-" + version + "-1.x86_64.rpm");
64+
if (rpm.exists()) {
65+
File rpmOutput = new File(outputDirectory, name + "_" + version + ".rpm");
66+
FileUtils.rename(rpm, rpmOutput.getName());
67+
return rpmOutput;
68+
}
69+
70+
return null;
71+
}
72+
73+
private void addDirectoryTree(Builder builder, String parentPath, File root) throws NoSuchAlgorithmException, IOException {
74+
builder.addDirectory(parentPath + "/" + root.getName());
75+
for (File dir : root.listFiles(f -> f.isDirectory())) {
76+
addDirectoryTree(builder, parentPath + "/" + root.getName(), dir);
77+
}
7278
}
7379

7480
}

src/main/java/io/github/fvarrui/javapackager/packagers/GenerateDmg.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.apache.commons.lang3.StringUtils;
1010

1111
import io.github.fvarrui.javapackager.model.MacConfig;
12+
import io.github.fvarrui.javapackager.model.Platform;
1213
import io.github.fvarrui.javapackager.utils.FileUtils;
1314
import io.github.fvarrui.javapackager.utils.Logger;
1415
import io.github.fvarrui.javapackager.utils.ThreadUtils;
@@ -26,7 +27,17 @@ public GenerateDmg() {
2627

2728
@Override
2829
public boolean skip(Packager packager) {
29-
return !packager.getMacConfig().isGenerateDmg();
30+
31+
if (!packager.getMacConfig().isGenerateDmg()) {
32+
return true;
33+
}
34+
35+
if (!packager.getPlatform().isCurrentPlatform()) {
36+
Logger.warn(getArtifactName() + " cannot be generated due to the target platform (" + packager.getPlatform() + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
37+
return true;
38+
}
39+
40+
return false;
3041
}
3142

3243
@Override

src/main/java/io/github/fvarrui/javapackager/packagers/GenerateMsi.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.io.File;
66

7+
import io.github.fvarrui.javapackager.model.Platform;
78
import io.github.fvarrui.javapackager.utils.Logger;
89
import io.github.fvarrui.javapackager.utils.VelocityUtils;
910
import io.github.fvarrui.javapackager.utils.XMLUtils;
@@ -20,7 +21,17 @@ public GenerateMsi() {
2021

2122
@Override
2223
public boolean skip(Packager packager) {
23-
return !packager.getWinConfig().isGenerateMsi();
24+
25+
if (!packager.getWinConfig().isGenerateMsi()) {
26+
return true;
27+
}
28+
29+
if (!packager.getPlatform().isCurrentPlatform()) {
30+
Logger.warn(getArtifactName() + " cannot be generated due to the target platform (" + packager.getPlatform() + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
31+
return true;
32+
}
33+
34+
return false;
2435
}
2536

2637
@Override

src/main/java/io/github/fvarrui/javapackager/packagers/GenerateMsm.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.File;
44

5+
import io.github.fvarrui.javapackager.model.Platform;
56
import io.github.fvarrui.javapackager.utils.CommandUtils;
67
import io.github.fvarrui.javapackager.utils.Logger;
78
import io.github.fvarrui.javapackager.utils.VelocityUtils;
@@ -19,7 +20,17 @@ public GenerateMsm() {
1920

2021
@Override
2122
public boolean skip(Packager packager) {
22-
return !packager.getWinConfig().isGenerateMsm() && !packager.getWinConfig().isGenerateMsi();
23+
24+
if (!packager.getWinConfig().isGenerateMsm() && !packager.getWinConfig().isGenerateMsi()) {
25+
return true;
26+
}
27+
28+
if (!packager.getPlatform().isCurrentPlatform()) {
29+
Logger.warn(getArtifactName() + " cannot be generated due to the target platform (" + packager.getPlatform() + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
30+
return true;
31+
}
32+
33+
return false;
2334
}
2435

2536
@Override

src/main/java/io/github/fvarrui/javapackager/packagers/GeneratePkg.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import java.io.File;
44

5+
import io.github.fvarrui.javapackager.model.Platform;
56
import io.github.fvarrui.javapackager.utils.CommandUtils;
7+
import io.github.fvarrui.javapackager.utils.Logger;
68

79
/**
810
* Creates a PKG installer file including all app folder's content only for MacOS so
@@ -16,7 +18,17 @@ public GeneratePkg() {
1618

1719
@Override
1820
public boolean skip(Packager packager) {
19-
return !packager.getMacConfig().isGeneratePkg();
21+
22+
if (!packager.getMacConfig().isGeneratePkg()) {
23+
return true;
24+
}
25+
26+
if (!packager.getPlatform().isCurrentPlatform()) {
27+
Logger.warn(getArtifactName() + " cannot be generated due to the target platform (" + packager.getPlatform() + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
28+
return true;
29+
}
30+
31+
return false;
2032
}
2133

2234
@Override

src/main/java/io/github/fvarrui/javapackager/packagers/GenerateSetup.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
import org.apache.commons.lang3.StringUtils;
66

7+
import io.github.fvarrui.javapackager.model.Platform;
78
import io.github.fvarrui.javapackager.model.Registry;
89
import io.github.fvarrui.javapackager.utils.CommandUtils;
910
import io.github.fvarrui.javapackager.utils.FileUtils;
11+
import io.github.fvarrui.javapackager.utils.Logger;
1012
import io.github.fvarrui.javapackager.utils.VelocityUtils;
1113

1214
/**
@@ -21,7 +23,17 @@ public GenerateSetup() {
2123

2224
@Override
2325
public boolean skip(Packager packager) {
24-
return !packager.getWinConfig().isGenerateSetup();
26+
27+
if (!packager.getWinConfig().isGenerateSetup()) {
28+
return true;
29+
}
30+
31+
if (!packager.getPlatform().isCurrentPlatform()) {
32+
Logger.warn(getArtifactName() + " cannot be generated due to the target platform (" + packager.getPlatform() + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
33+
return true;
34+
}
35+
36+
return false;
2537
}
2638

2739
@Override

src/main/java/io/github/fvarrui/javapackager/packagers/Packager.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,10 +379,6 @@ public List<File> generateInstallers() throws Exception {
379379
Logger.warn("Installer generation is disabled by 'generateInstaller' property!");
380380
return installers;
381381
}
382-
if (!platform.isCurrentPlatform()) {
383-
Logger.warn("Installers cannot be generated due to the target platform (" + platform + ") is different from the execution platform (" + Platform.getCurrentPlatform() + ")!");
384-
return installers;
385-
}
386382

387383
Logger.infoIndent("Generating installers ...");
388384

0 commit comments

Comments
 (0)