Skip to content

Commit

Permalink
Introducing "dev" command as a shortcut for easy local development se…
Browse files Browse the repository at this point in the history
…tup.
  • Loading branch information
nmihajlovski committed Mar 16, 2017
1 parent d9947dc commit 17a3f96
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 20 deletions.
Expand Up @@ -91,6 +91,7 @@ private static List<ConfigOption> serviceOptions() {
private static List<ConfigOption> commandOptions() { private static List<ConfigOption> commandOptions() {
List<ConfigOption> opts = U.list(); List<ConfigOption> opts = U.list();


opts.add(cmd("dev", "CLI shortcut for convenient local development setup"));
opts.add(cmd("password", "Generate salted password hash")); opts.add(cmd("password", "Generate salted password hash"));
opts.add(cmd("mvn", "Run embedded Maven")); opts.add(cmd("mvn", "Run embedded Maven"));


Expand Down
54 changes: 43 additions & 11 deletions rapidoid-platform/src/main/java/org/rapidoid/platform/Main.java
Expand Up @@ -23,34 +23,66 @@
import org.rapidoid.RapidoidThing; import org.rapidoid.RapidoidThing;
import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since; import org.rapidoid.annotation.Since;
import org.rapidoid.commons.Arr;
import org.rapidoid.u.U; import org.rapidoid.u.U;
import org.rapidoid.util.Msc; import org.rapidoid.util.Msc;


import java.util.Collections;
import java.util.List; import java.util.List;


@Authors("Nikolche Mihajlovski") @Authors("Nikolche Mihajlovski")
@Since("5.1.0") @Since("5.1.0")
public class Main extends RapidoidThing { public class Main extends RapidoidThing {


private static final List<String> DEFAULT_ARGS = U.list( private static final String[] DEFAULT_ARGS = {
"admin.services=center" "admin.services=center"
); };

private static final String[] DEV_CMD_ARGS = {
"admin.services=center",
"users.admin.password=admin",
"secret=NOT-A-REAL-SECRET"
};


public static void main(String[] args) { public static void main(String[] args) {
boolean defaults = U.isEmpty(args);


if (defaults) { boolean noArgs = U.isEmpty(args);
List<String> opts = U.list();

if (noArgs) {
defaultSetup(opts);


if (Msc.hasMainApp()) { } else if (args[0].equals("dev")) {
DEFAULT_ARGS.add("/ -> localhost:8080"); devSetup(args, opts);
} else {
DEFAULT_ARGS.add("app.services=welcome");
}


args = U.arrayOf(String.class, DEFAULT_ARGS); } else {
Collections.addAll(opts, args);
} }


Platform.start(args, defaults); run(opts, noArgs);
}

private static void defaultSetup(List<String> opts) {
Collections.addAll(opts, DEFAULT_ARGS);
optionalAppSetup(opts);
}

private static void devSetup(String[] args, List<String> opts) {
Collections.addAll(opts, DEV_CMD_ARGS);
optionalAppSetup(opts);
Collections.addAll(opts, Arr.sub(args, 1, args.length));
}

private static void optionalAppSetup(List<String> opts) {
if (Msc.hasMainApp()) {
opts.add("/ -> localhost:8080");
} else {
opts.add("app.services=welcome");
}
}

private static void run(List<String> opts, boolean defaults) {
Platform.start(U.arrayOf(String.class, opts), defaults);
} }


} }
Expand Up @@ -28,16 +28,8 @@
@Since("5.3.0") @Since("5.3.0")
public class PlatformInDevMode extends RapidoidThing { public class PlatformInDevMode extends RapidoidThing {


private static final String[] DEV_MODE_ARGS = {
"app.services=welcome",
"admin.services=center",
"users.admin.password=admin",
"secret=my-secret",
"app.cdn=false",
};

public static void main(String[] args) { public static void main(String[] args) {
Platform.start(DEV_MODE_ARGS, true); Main.main(new String[]{"dev"});
} }


} }

0 comments on commit 17a3f96

Please sign in to comment.