From 155c5cd5f9556695d8398e60fa2d98d9ca387bf5 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Tue, 12 Jun 2018 03:48:52 +0700 Subject: [PATCH] Build self-contained APP bundle (non-MAS) --- build.xml | 2 +- source/net/filebot/Main.java | 24 +++++++++++++++--------- source/net/filebot/cli/ArgumentBean.java | 4 ++-- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/build.xml b/build.xml index ce746f00..3b988895 100644 --- a/build.xml +++ b/build.xml @@ -567,7 +567,7 @@ - + diff --git a/source/net/filebot/Main.java b/source/net/filebot/Main.java index b985c0b6..82457dc4 100644 --- a/source/net/filebot/Main.java +++ b/source/net/filebot/Main.java @@ -114,9 +114,11 @@ public class Main { // CLI mode => run command-line interface and then exit if (args.runCLI()) { // just import and print license when running with --license option - if (LICENSE.isFile() && args.getLicenseFile() != null) { - configureLicense(args); - System.exit(0); + if (LICENSE.isFile()) { + args.getLicenseFile().ifPresent(f -> { + configureLicense(f); + System.exit(0); + }); } int status = new ArgumentProcessor().run(args); @@ -162,9 +164,9 @@ public class Main { } } - private static void configureLicense(ArgumentBean args) { + private static void configureLicense(File f) { try { - License license = License.configure(args.getLicenseFile()); + License license = License.configure(f); log.info(license + " has been activated."); } catch (Throwable e) { log.severe("License Error: " + e.getMessage()); @@ -180,9 +182,7 @@ public class Main { if (LICENSE.isFile()) { // import license if launched with license file - if (args.getLicenseFile() != null) { - configureLicense(args); - } + args.getLicenseFile().ifPresent(f -> configureLicense(f)); // make sure license is validated and cached try { @@ -252,7 +252,13 @@ public class Main { // configure main window if (isMacApp()) { // Mac specific configuration - MacAppUtilities.initializeApplication(FileBotMenuBar.createHelp(), files -> SwingEventBus.getInstance().post(new FileTransferable(files))); + MacAppUtilities.initializeApplication(FileBotMenuBar.createHelp(), files -> { + if (LICENSE.isFile() && files.size() == 1 && files.get(0).getName().endsWith(".psm")) { + configureLicense(files.get(0)); + } else { + SwingEventBus.getInstance().post(new FileTransferable(files)); + } + }); } else if (isUbuntuApp()) { // Ubuntu/Debian specific configuration frame.setIconImages(ResourceManager.getApplicationIconImages()); diff --git a/source/net/filebot/cli/ArgumentBean.java b/source/net/filebot/cli/ArgumentBean.java index fd0027ce..97d2b930 100644 --- a/source/net/filebot/cli/ArgumentBean.java +++ b/source/net/filebot/cli/ArgumentBean.java @@ -352,8 +352,8 @@ public class ArgumentBean { }).orElseThrow(error("Illegal mode", mode)); } - public File getLicenseFile() { - return license == null ? null : new File(license); + public Optional getLicenseFile() { + return optional(license).map(File::new); } private final String[] args;