0

我想根据组件进程返回的结果(通过“switch.variable”)将应用程序进程切换为 3 种不同的方式。组件进程包含 shell (bash) 脚本,它可以返回如下字符串:

  • 一些文本DIFF一些文本
  • 一些文本NO_DIFF一些文本
  • 任何文本,最有可能的错误信息

然后在同一个组件过程中,我想使用 post-script 处理 bash 脚本的重新结果,如下所示:

if (properties.get("exitCode") != 0) {
    properties.put('Status', 'Failure');
    properties.remove("switch.variable")
    commandOut.println("Error")
} else {
    properties.put('Status', 'Success');
    scanner.register("any text", function (lineNumber, line) {
        if (line.contains("DIFF")) {
            properties.put("switch.variable", "DIFF")
        } else if (line.contains("NO_DIFF")) {
            properties.put("switch.variable", "NO_DIFF")
        }
        commandOut.println(properties.get("switch.variable"));
    });
    scanner.scan();
}

你能帮我写正确的后记吗?

4

1 回答 1

0

假设您的组件进程中有一个名为“Shell”的 shell 脚本框,如下所示:

echo 'some text: DIFF'

对于此框,您应该添加一个后处理脚本,如下所示:

if( properties.get("exitCode") != 0 ){
    properties.put('Status', 'Failure');
}
else {
       properties.put('Status', 'Success');
       var regex = "some text";
       scanner.register(regex, function(lineNumber,line){
       var foo = line.substring(line.lastIndexOf(':')+1).trim();
       // The ':' is the symbol after which the payload value starts.
       properties.put("Lorem", foo );
});
scanner.scan();

然后在名为“Shell”的 shell 脚本框之后放置一个“开关”框。在该开关的属性名称中,输入Shell\Lorem.

从这里你可以通过绘制带有你想要的值的箭头来分支你的 switch case,比如 DIFF、NO_DIFF、默认值。默认箭头将涵盖意外情况。此外,您可能对 Shell 框失败有一些其他逻辑。它将需要带有红色标志的传出箭头。

于 2018-04-12T06:31:58.803 回答