From c912e4396e033dd0fa1a4da080ced10006020fa7 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Tue, 25 Jun 2024 05:13:20 -0400 Subject: [PATCH] Improvements to json operation. Upgraded bld to 2.0.0-SNAPSHOT. --- .idea/libraries/bld.xml | 4 +- lib/bld/bld-wrapper.jar | Bin 27702 -> 29079 bytes lib/bld/bld-wrapper.properties | 2 +- src/main/java/rife/bld/BuildExecutor.java | 83 +++++++++--------- .../rife/bld/operations/HelpOperation.java | 8 +- 5 files changed, 47 insertions(+), 50 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index e6f1eb5..0a7a3e9 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 66e01050dd07ca86c5095b8ddd6d5a3c87869ab3..5e7beaeb34d59f04a4e9d26ff2de3a29e9944c2a 100644 GIT binary patch delta 15188 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 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 1976594..798472e 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -8,4 +8,4 @@ bld.javaOptions= bld.javacOptions= bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES bld.sourceDirectories=core/src/bld/java -bld.version=1.9.2-SNAPSHOT \ No newline at end of file +bld.version=2.0.0-SNAPSHOT \ No newline at end of file diff --git a/src/main/java/rife/bld/BuildExecutor.java b/src/main/java/rife/bld/BuildExecutor.java index 61872c1..60e93f6 100644 --- a/src/main/java/rife/bld/BuildExecutor.java +++ b/src/main/java/rife/bld/BuildExecutor.java @@ -241,49 +241,15 @@ public int execute(String[] arguments) { return exitStatus_; } - var first_command = true; var json_template = TemplateFactory.JSON.get("bld.executor_execute"); - var exception_caught = false; while (!arguments_.isEmpty()) { var command = arguments_.remove(0); try { - var orig_out = System.out; - var orig_err = System.err; - var out = new ByteArrayOutputStream(); - var err = new ByteArrayOutputStream(); - if (outputJson()) { - System.setOut(new PrintStream(out, true, StandardCharsets.UTF_8)); - System.setErr(new PrintStream(err, true, StandardCharsets.UTF_8)); - } - - try { - if (!executeCommand(command)) { - break; - } - } - finally { - if (outputJson()) { - if (first_command) { - json_template.blankValue("separator"); - } - else { - json_template.setValue("separator", ", "); - } - json_template.setValueEncoded("command", command); - json_template.setValueEncoded("out", out.toString(StandardCharsets.UTF_8)); - json_template.setValueEncoded("err", err.toString(StandardCharsets.UTF_8)); - json_template.appendBlock("commands", "command"); - - System.setOut(orig_out); - System.setErr(orig_err); - } - - first_command = false; + if (!executeCommand(json_template, command)) { + break; } } catch (Throwable e) { - exception_caught = true; - exitStatus(1); if (outputJson()) { @@ -335,10 +301,8 @@ public int execute(String[] arguments) { } } - if (!exception_caught) { - if (outputJson()) { - System.out.println(json_template.getContent()); - } + if (outputJson() && exitStatus_ == ExitStatusException.EXIT_SUCCESS) { + System.out.println(json_template.getContent()); } return exitStatus_; @@ -484,6 +448,16 @@ public String getDescription(String topic) { * @since 1.5 */ public boolean executeCommand(String command) + throws Throwable { + var json_template = TemplateFactory.JSON.get("bld.executor_execute"); + var result = executeCommand(json_template, command); + if (result && outputJson() && exitStatus_ == ExitStatusException.EXIT_SUCCESS) { + System.out.println(json_template.getContent()); + } + return result; + } + + private boolean executeCommand(Template jsonTemplate, String command) throws Throwable { var matched_command = command; var definition = buildCommands().get(command); @@ -532,9 +506,18 @@ public boolean executeCommand(String command) // execute the command if we found one if (definition != null) { + var orig_out = System.out; + var orig_err = System.err; + var out = new ByteArrayOutputStream(); + var err = new ByteArrayOutputStream(); + if (outputJson()) { + System.setOut(new PrintStream(out, true, StandardCharsets.UTF_8)); + System.setErr(new PrintStream(err, true, StandardCharsets.UTF_8)); + } + + currentCommandName_.set(matched_command); + currentCommandDefinition_.set(definition); try { - currentCommandName_.set(matched_command); - currentCommandDefinition_.set(definition); definition.execute(); } catch (ExitStatusException e) { exitStatus(e.getExitStatus()); @@ -542,6 +525,22 @@ public boolean executeCommand(String command) } finally { currentCommandDefinition_.set(null); currentCommandName_.set(null); + + if (outputJson()) { + if (jsonTemplate.isValueSet("commands")) { + jsonTemplate.setValue("separator", ", "); + } + else { + jsonTemplate.blankValue("separator"); + } + jsonTemplate.setValueEncoded("command", matched_command); + jsonTemplate.setValueEncoded("out", out.toString(StandardCharsets.UTF_8)); + jsonTemplate.setValueEncoded("err", err.toString(StandardCharsets.UTF_8)); + jsonTemplate.appendBlock("commands", "command"); + + System.setOut(orig_out); + System.setErr(orig_err); + } } } else { var message = "Unknown command '" + command + "'"; diff --git a/src/main/java/rife/bld/operations/HelpOperation.java b/src/main/java/rife/bld/operations/HelpOperation.java index 8da4c3f..1675646 100644 --- a/src/main/java/rife/bld/operations/HelpOperation.java +++ b/src/main/java/rife/bld/operations/HelpOperation.java @@ -100,14 +100,12 @@ private void executePrintOverviewHelp(Exception exception) { t.setValueEncoded("error-message", ExceptionUtils.getExceptionStackTrace(exception)); } - boolean first = true; for (var command : commands.entrySet()) { - if (first) { - first = false; - t.blankValue("separator"); + if (t.isValueSet("commands")) { + t.setValue("separator", ", "); } else { - t.setValue("separator", ", "); + t.blankValue("separator"); } t.setValueEncoded("command", command.getKey()); var build_help = command.getValue().getHelp();