urbancode部署后脚本

时间:2018-04-11 09:55:03

标签: javascript urbancode udeploy

我想根据组件流程返回的结果,以3种不同的方式切换(通过“switch.variable”)应用程序进程。组件进程包含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();
}

你能帮我写一些合适的后期剧本吗?

1 个答案:

答案 0 :(得分: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脚本框之后放置一个“switch”框。 在该开关的属性名称中,放置Shell\Lorem

从此处,您可以通过绘制所需值的箭头来分支您的开关案例,例如DIFF,NO_DIFF,默认值。 默认箭头将涵盖意外情况。 此外,您可能还有另一个Shell shell故障的逻辑。它需要带红色标记的外出箭头。