diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiRunner.java b/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiRunner.java index 768775a..09c63fa 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiRunner.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiRunner.java @@ -142,7 +142,7 @@ public class ApiRunner { public boolean run(ApiScript script) throws Exception { if (listener != null) listener.setCtxVars(ctx); currentApi = script.getConnection(this.api, currentApi, alternateApis, getHandlebars(), ctx); - if (script.shouldSkip(js, ctx)) return true; + if (script.shouldSkip(js, getHandlebars(), ctx)) return true; if (script.hasInclude()) { if (script.isIncludeDefaults()) return true; // skip this block. used in validation before running included script final String logPrefix = (script.hasComment() ? script.getComment()+"\n" : "") + ">>> "; diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiScript.java b/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiScript.java index a1f9198..57e1aae 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiScript.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/client/script/ApiScript.java @@ -138,14 +138,15 @@ public class ApiScript { } } - public boolean shouldSkip(StandardJsEngine js, Map ctx) { + public boolean shouldSkip(StandardJsEngine js, Handlebars handlebars, Map ctx) { if (hasOnlyIf()) { try { - if (js.evaluateBoolean(getOnlyIf(), ctx, false)) { - log.info("onlyIf '"+getOnlyIf()+"' returned true, NOT skipping script"); + final String onlyIf = HandlebarsUtil.apply(handlebars, getOnlyIf(), ctx); + if (js.evaluateBoolean(onlyIf, ctx, false)) { + log.info("onlyIf '"+onlyIf+"' returned true, NOT skipping script"); return false; } else { - log.info("onlyIf '"+getOnlyIf()+"' returned false, skipping script"); + log.info("onlyIf '"+onlyIf+"' returned false, skipping script"); return true; } } catch (Exception e) { @@ -154,11 +155,12 @@ public class ApiScript { } if (hasUnless()) { try { - if (js.evaluateBoolean(getUnless(), ctx, false)) { - log.info("unless '"+getUnless()+"' returned true, skipping script"); + final String unless = HandlebarsUtil.apply(handlebars, getUnless(), ctx); + if (js.evaluateBoolean(unless, ctx, false)) { + log.info("unless '"+unless+"' returned true, skipping script"); return true; } else { - log.info("unless '"+getUnless()+"' returned false, NOT skipping script"); + log.info("unless '"+unless+"' returned false, NOT skipping script"); return false; } } catch (Exception e) {