From decbc7c290696fad2878f0e407a8fc3f01356285 Mon Sep 17 00:00:00 2001 From: nmihajlovski Date: Wed, 29 Mar 2017 12:16:44 +0200 Subject: [PATCH] Small improvements. --- .../org/rapidoid/io/FileSearchResult.java | 6 ++- .../src/main/java/org/rapidoid/io/IO.java | 3 ++ .../java/org/rapidoid/platform/Platform.java | 46 +++++++++++++------ 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/rapidoid-commons/src/main/java/org/rapidoid/io/FileSearchResult.java b/rapidoid-commons/src/main/java/org/rapidoid/io/FileSearchResult.java index b3fc70b236..1635b1e04f 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/io/FileSearchResult.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/io/FileSearchResult.java @@ -28,7 +28,7 @@ @Authors("Nikolche Mihajlovski") @Since("5.2.5") -public class FileSearchResult extends RapidoidThing { +public class FileSearchResult extends RapidoidThing implements Comparable { private final File file; @@ -54,4 +54,8 @@ public String relativeName() { return relativeName; } + @Override + public int compareTo(FileSearchResult that) { + return this.absoluteName.compareTo(that.absoluteName); + } } diff --git a/rapidoid-commons/src/main/java/org/rapidoid/io/IO.java b/rapidoid-commons/src/main/java/org/rapidoid/io/IO.java index e95a1c7f93..7839ec6e43 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/io/IO.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/io/IO.java @@ -243,6 +243,9 @@ public static void save(String filename, byte[] content, int retries) { } private static void writeToFile(String filename, byte[] content, boolean append, int retries) { + U.notNull(filename, "filename"); + U.notNull(content, "content"); + FileOutputStream out = null; try { out = new FileOutputStream(filename, append); diff --git a/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java b/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java index 71aac685a4..517375fce0 100644 --- a/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java +++ b/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java @@ -73,9 +73,6 @@ static void start(String[] args, @SuppressWarnings("unused") boolean defaults) { } private static void printArgs(String[] args, boolean defaults) { - // don't print the args when displaying help - if (ConfigHelp.isHelpRequested(args)) return; - if (defaults) { Log.info("No command-line arguments were specified, using the defaults:"); } else { @@ -89,6 +86,7 @@ private static void printArgs(String[] args, boolean defaults) { } private static void interceptSpecialCommands(String[] args) { + ConfigHelp.processHelp(args); String cmd = args[0]; String[] cmdArgs = Arr.sub(args, 1, args.length); @@ -100,12 +98,6 @@ private static void interceptSpecialCommands(String[] args) { System.exit(result); break; - case "benchmark": - // interpret the "benchmark" command - BenchmarkCenter.main(cmdArgs); - System.exit(0); - break; - case "password": // interpret the "password" command PasswordHashTool.generatePasswordHash(cmdArgs); @@ -126,9 +118,10 @@ private static void startPlatformAndProcessArgs(String[] args) { List normalArgs = U.list(); List appRefs = U.list(); - separateArgs(args, normalArgs, appRefs); + String cmd = separateArgs(args, normalArgs, appRefs); PreApp.args(U.arrayOf(String.class, normalArgs)); + App.boot(); for (String appRef : appRefs) { @@ -136,17 +129,44 @@ private static void startPlatformAndProcessArgs(String[] args) { AppDownloader.download(appRef, MscOpts.appsPath()); MavenUtil.findAndBuildAndDeploy(MscOpts.appsPath()); } + + if (U.notEmpty(cmd)) executeCommand(cmd); } - private static void separateArgs(String[] args, List normalArgs, List appRefs) { - for (String arg : args) { + private static void executeCommand(String cmd) { + switch (cmd) { + case "benchmark": + benchmark(); + break; + } + } + + private static void benchmark() { + BenchmarkCenter.run(); + System.exit(0); + } + + private static String separateArgs(String[] args, List normalArgs, List appRefs) { + String cmd = null; + + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.startsWith("@")) { String appRef = arg.substring(1); appRefs.add(appRef); + } else { - normalArgs.add(arg); + if (i == 0 && !arg.contains("=")) { + cmd = args[0]; + + } else { + normalArgs.add(arg); + } } } + + return cmd; } private static void openInBrowser() {