diff --git a/README.md b/README.md index 11df0d9..d812e71 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,7 @@ provs-server.jar k3s -h Development happens at: https://repo.prod.meissa.de/meissa/provs Mirrors are: +* https://codeberg.org/meissa/provs.git * https://gitlab.com/domaindrivenarchitecture/provs (CI issues and PR) * https://github.com/DomainDrivenArchitecture/provs diff --git a/build.gradle b/build.gradle index 443f992..eb3a9f9 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ plugins { apply plugin: "maven-publish" -version = "0.39.5-SNAPSHOT" +version = "0.39.6-SNAPSHOT" group = "org.domaindrivenarchitecture.provs" diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/framework/core/Prov.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/framework/core/Prov.kt index d4b764f..2b059c8 100644 --- a/src/main/kotlin/org/domaindrivenarchitecture/provs/framework/core/Prov.kt +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/framework/core/Prov.kt @@ -1,5 +1,6 @@ package org.domaindrivenarchitecture.provs.framework.core +import org.domaindrivenarchitecture.provs.framework.core.platforms.SHELL import org.domaindrivenarchitecture.provs.framework.core.platforms.UbuntuProv import org.domaindrivenarchitecture.provs.framework.core.processors.LocalProcessor import org.domaindrivenarchitecture.provs.framework.core.processors.Processor @@ -325,7 +326,11 @@ open class Prov protected constructor( ProvResult(false, err = "mode unknown") } - internalResults[resultIndex].provResult = returnValue + // removes potential prefix from cmd in ProvResult, e.g. removes "/bin/bash -c " + fun cleanedResult(result: ProvResult): ProvResult { return result.copy(cmd = returnValue.cmd?.replace("[" + SHELL + ", -c, ", "[")) } + + val resultValueWithCmdCleanedUp = cleanedResult(returnValue) + internalResults[resultIndex].provResult = resultValueWithCmdCleanedUp // Add failure result to output if not yet included, // which is the case if the result was not part of another subtask but created and returned by the lambda itself. @@ -333,7 +338,7 @@ open class Prov protected constructor( // whereas the failure results may have a useful error message, which should be in the output. // Only direct result objects are added, but not result objects that were passed from a subtask as they are already handled in the subtask. if (!resultOfTaskLambda.success && (resultIndex < internalResults.size - 1) && (resultOfTaskLambda != internalResults[resultIndex + 1].provResult)) { - internalResults.add(ResultLine(level + 1, "<<returned result>>", resultOfTaskLambda)) + internalResults.add(ResultLine(level + 1, name + " (returned result)", cleanedResult(resultOfTaskLambda))) } if (level == 0) { diff --git a/src/test/kotlin/org/domaindrivenarchitecture/provs/framework/core/ProvTest.kt b/src/test/kotlin/org/domaindrivenarchitecture/provs/framework/core/ProvTest.kt index 051fe2e..387a2a7 100644 --- a/src/test/kotlin/org/domaindrivenarchitecture/provs/framework/core/ProvTest.kt +++ b/src/test/kotlin/org/domaindrivenarchitecture/provs/framework/core/ProvTest.kt @@ -318,10 +318,10 @@ internal class ProvTest { "---> \u001B[92mSuccess\u001B[0m -- testMethodForOutputTest_with_mode_requireLast (requireLast) \n" + "------> \u001B[93mFAILED\u001B[0m -- checkPrereq_evaluateToFailure (requireLast) -- Error: This is a test error.\n" + "------> \u001B[92mSuccess\u001B[0m -- sh \n" + - "---------> \u001B[92mSuccess\u001B[0m -- cmd [/bin/bash, -c, echo -Start test-]\n" + - "---------> \u001B[92mSuccess\u001B[0m -- cmd [/bin/bash, -c, echo Some output]\n" + + "---------> \u001B[92mSuccess\u001B[0m -- cmd [echo -Start test-]\n" + + "---------> \u001B[92mSuccess\u001B[0m -- cmd [echo Some output]\n" + "------> \u001B[92mSuccess\u001B[0m -- sh \n" + - "---------> \u001B[92mSuccess\u001B[0m -- cmd [/bin/bash, -c, echo -End test-]\n" + + "---------> \u001B[92mSuccess\u001B[0m -- cmd [echo -End test-]\n" + "----------------------------------------------------------------------------------------------------\n" + "Overall > \u001B[92mSuccess\u001B[0m\n" + "============================================ SUMMARY END ===========================================\n" + @@ -362,8 +362,8 @@ internal class ProvTest { "---> \u001B[91mFAILED\u001B[0m -- testMethodForOutputTest_nested_with_failure \n" + "------> \u001B[91mFAILED\u001B[0m -- sub1 \n" + "---------> \u001B[92mSuccess\u001B[0m -- testMethodForOutputTest_nested_with_failure \n" + - "---------> \u001B[91mFAILED\u001B[0m -- <<returned result>> -- Error: Iamanerrormessage\n" + - "------> \u001B[92mSuccess\u001B[0m -- cmd [/bin/bash, -c, echo -End test-]\n" + + "---------> \u001B[91mFAILED\u001B[0m -- sub1 (returned result) -- Error: Iamanerrormessage\n" + + "------> \u001B[92mSuccess\u001B[0m -- cmd [echo -End test-]\n" + "----------------------------------------------------------------------------------------------------\n" + "Overall > \u001B[91mFAILED\u001B[0m \n" + "============================================ SUMMARY END ===========================================\n" + @@ -734,7 +734,7 @@ internal class ProvTest { "------> \u001B[92mSuccess\u001B[0m -- sub2e-task \n" + "---------> \u001B[92mSuccess\u001B[0m -- addResultToEval \n" + "------> \u001B[91mFAILED\u001B[0m -- sub2f-taskWithResult -- Error: returned-result - error msg C should be once in output - at the end of sub3taskWithResult \n" + - "------> \u001B[91mFAILED\u001B[0m -- <<returned result>> -- Error: returned-result - error msg D should be once in output - at the end of sub1 \n" + + "------> \u001B[91mFAILED\u001B[0m -- sub1 (returned result) -- Error: returned-result - error msg D should be once in output - at the end of sub1 \n" + "----------------------------------------------------------------------------------------------------\n" + "Overall > \u001B[91mFAILED\u001B[0m \n" + "============================================ SUMMARY END ===========================================\n" +