diff --git a/bubble-server/src/main/java/bubble/main/BubbleHandlebarsMain.java b/bubble-server/src/main/java/bubble/main/BubbleHandlebarsMain.java index 8ba3ac7d..d1c58c84 100644 --- a/bubble-server/src/main/java/bubble/main/BubbleHandlebarsMain.java +++ b/bubble-server/src/main/java/bubble/main/BubbleHandlebarsMain.java @@ -6,6 +6,7 @@ package bubble.main; import bubble.BubbleHandlebars; import org.cobbzilla.util.handlebars.HandlebarsUtil; +import org.cobbzilla.util.io.FileUtil; import org.cobbzilla.wizard.main.MainBase; import java.util.HashMap; @@ -18,7 +19,11 @@ public class BubbleHandlebarsMain extends MainBase { public static void main (String[] args) { main(BubbleHandlebarsMain.class, args); } @Override protected void run() throws Exception { + final BubbleHandlebarsOptions opts = getOptions(); final Map ctx = new HashMap<>(System.getenv()); + if (opts.hasAdditionalContext()) { + ctx.put(opts.getAdditionalContextName(), FileUtil.toString(opts.getAdditionalContext())); + } out(HandlebarsUtil.apply(BubbleHandlebars.instance.getHandlebars(), readStdin(), ctx)); } diff --git a/bubble-server/src/main/java/bubble/main/BubbleHandlebarsOptions.java b/bubble-server/src/main/java/bubble/main/BubbleHandlebarsOptions.java index 832a626b..338653e2 100644 --- a/bubble-server/src/main/java/bubble/main/BubbleHandlebarsOptions.java +++ b/bubble-server/src/main/java/bubble/main/BubbleHandlebarsOptions.java @@ -4,7 +4,28 @@ */ package bubble.main; +import lombok.Getter; +import lombok.Setter; import org.cobbzilla.util.main.BaseMainOptions; +import org.kohsuke.args4j.Option; + +import java.io.File; + +import static org.cobbzilla.util.daemon.ZillaRuntime.empty; public class BubbleHandlebarsOptions extends BaseMainOptions { + + public static final String USAGE_ADDITIONAL_CTX = "Additional context JSON file"; + public static final String OPT_ADDITIONAL_CTX = "-c"; + public static final String LONGOPT_ADDITIONAL_CTX = "--context-json"; + @Option(name=OPT_ADDITIONAL_CTX, aliases=LONGOPT_ADDITIONAL_CTX, usage=USAGE_ADDITIONAL_CTX) + @Getter @Setter private File additionalContext; + public boolean hasAdditionalContext() { return !empty(additionalContext); } + + public static final String USAGE_ADDITIONAL_CTX_NAME = "Name of handlebars var for context JSON file"; + public static final String OPT_ADDITIONAL_CTX_NAME = "-n"; + public static final String LONGOPT_ADDITIONAL_CTX_NAME = "--context-json-name"; + @Option(name=OPT_ADDITIONAL_CTX_NAME, aliases=LONGOPT_ADDITIONAL_CTX_NAME, usage=USAGE_ADDITIONAL_CTX_NAME) + @Getter @Setter private String additionalContextName = "json"; + } diff --git a/utils/abp-parser b/utils/abp-parser index 24d91f73..e50a6e00 160000 --- a/utils/abp-parser +++ b/utils/abp-parser @@ -1 +1 @@ -Subproject commit 24d91f73b4ad72674ae35362c196a8be9e63a885 +Subproject commit e50a6e004df9c3616a6936fbcc0f7ef299da378e diff --git a/utils/cobbzilla-utils b/utils/cobbzilla-utils index 6cc7a8a2..c5e10eb7 160000 --- a/utils/cobbzilla-utils +++ b/utils/cobbzilla-utils @@ -1 +1 @@ -Subproject commit 6cc7a8a279ebb90edbfd8ec379acb5a52acad522 +Subproject commit c5e10eb7a0a7f842f9d3a5a2cce0d2301cd20c9b