@Override public String describe() { if (null != argList && !argList.isEmpty()) { return CommandUtils.shellJoin((String[]) ArrayUtils.add(argList.toStringArray(), 0, command)); } if (null != args && !"".equals(args)) { return command + " " + args; } return command; }
@Test public void shouldConvertToEmptyArray() { assertThat(new Arguments().toStringArray().length, is(0)); }
public static void toJSON(OutputWriter jsonWriter, ExecTask execTask) { BaseTaskRepresenter.toJSON(jsonWriter, execTask); jsonWriter.add("command", execTask.command()); if (execTask.getArgList().isEmpty()) { jsonWriter.addIfNotNull("args", execTask.getArgs()); } else { List<String> arguments = execTask.getArgList().stream().map(Argument::getValue).collect(Collectors.toList()); jsonWriter.addChildList("arguments", arguments); } jsonWriter.addIfNotNull("working_directory", execTask.workingDirectory()); }
private boolean usingBothArgsAndArgList() { return args.isEmpty() || argList.isEmpty(); }
public static Builder builderFor(ExecTask task) { Builder cancelTask = null; if (task.cancelTask() != null) { cancelTask = builderFor((ExecTask) task.cancelTask()); } return new CommandBuilderWithArgList(task.command(), task.getArgList().toStringArray(), new File(task.workingDirectory()), task.getConditions(), cancelTask, task.describe()); }
private void closeConfigTag(StringBuilder builder, GoConfigFieldWriter field) { if (((Arguments) field.getValue()).size() != 0) { builder.append(">").append("\n"); } else { builder.append("/>"); } }
private CRExecTask execTasktoCRExecTask(ExecTask task) { CRExecTask crExecTask = new CRExecTask(task.getCommand()); crExecTask.setTimeout(task.getTimeout()); crExecTask.setWorkingDirectory(task.workingDirectory()); crExecTask.setArgs(task.getArgList().stream() .map(Argument::getValue) .collect(Collectors.toList()) ); commonCRTaskMembers(crExecTask, task); return crExecTask; }
public void setArgsList(String[] arguments) { clearCurrentArgsAndArgList(); for (String arg : arguments) { argList.add(new Argument(arg)); } }
public static void toJSON(OutputWriter jsonWriter, ExecTask execTask) { BaseTaskRepresenter.toJSON(jsonWriter, execTask); jsonWriter.add("command", execTask.command()); if (execTask.getArgList().isEmpty()) { jsonWriter.addIfNotNull("args", execTask.getArgs()); } else { List<String> arguments = execTask.getArgList().stream().map(Argument::getValue).collect(Collectors.toList()); jsonWriter.addChildList("arguments", arguments); } jsonWriter.addIfNotNull("working_directory", execTask.workingDirectory()); }
@Test public void shouldAllowSettingOfConfigAttributes() throws Exception { ExecTask exec = new ExecTask(); exec.setConfigAttributes(m(ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "my_dir")); assertThat(exec.command(), is("ls")); assertThat(exec.getArgs(), is("-la")); assertThat(exec.getArgListString(), is("")); assertThat(exec.workingDirectory(), is("my_dir")); exec.setConfigAttributes(m(ExecTask.COMMAND, null, ExecTask.ARGS, null, ExecTask.WORKING_DIR, null)); assertThat(exec.command(), is(nullValue())); assertThat(exec.getArgs(), is("")); assertThat(exec.workingDirectory(), is(nullValue())); exec.setConfigAttributes(m(ExecTask.COMMAND, null, ExecTask.ARG_LIST_STRING, "-l\n-a\npavan's\\n working dir?", ExecTask.WORKING_DIR, null)); assertThat(exec.command(), is(nullValue())); assertThat(exec.getArgListString(), is("-l\n-a\npavan's\\n working dir?")); assertThat(exec.getArgList().size(), is(3)); assertThat(exec.getArgList().get(0), is(new Argument("-l"))); assertThat(exec.getArgList().get(1), is(new Argument("-a"))); assertThat(exec.getArgList().get(2), is(new Argument("pavan's\\n working dir?"))); assertThat(exec.workingDirectory(), is(nullValue())); }
public String[] toStringArray() { ArrayList<String> list = new ArrayList<>(this.size()); for (Argument arg : this) { list.add(arg.getValue()); } return list.toArray(new String[list.size()]); } }
protected void setTaskConfigAttributes(Map attributeMap) { if (attributeMap.containsKey(COMMAND)) { command = (String) attributeMap.get(COMMAND); } if (attributeMap.containsKey(ARG_LIST_STRING)) { clearCurrentArgsAndArgList(); String value = (String) attributeMap.get(ARG_LIST_STRING); if (!StringUtils.isBlank(value)) { String[] arguments = value.split("\n"); for (String arg : arguments) { argList.add(new Argument(arg)); } } } if (attributeMap.containsKey(ARGS)) { String val = (String) attributeMap.get(ARGS); setArgs(val); } if (attributeMap.containsKey(WORKING_DIR)) { final String newWorkingDir = (String) attributeMap.get(WORKING_DIR); setWorkingDirectory(newWorkingDir); } }
@Override public Builder createBuilder(BuilderFactory builderFactory, ExecTask task, Pipeline pipeline, UpstreamPipelineResolver pipelineResolver) { String workingDir = task.workingDirectory(); String command = task.command(); File newWorkingDir = workingDir == null ? pipeline.defaultWorkingFolder() : new File( applyBaseDirIfRelativeAndNormalize(pipeline.defaultWorkingFolder(), new File(workingDir))); Builder builder = builderFactory.builderFor(task.cancelTask(), pipeline, pipelineResolver); String description = task.describe(); if (!task.getArgList().isEmpty()) { return new CommandBuilderWithArgList(command, task.getArgList().toStringArray(), newWorkingDir, task.getConditions(), builder, description); } else { return new CommandBuilder(command, task.getArgs(), newWorkingDir, task.getConditions(), builder, description); } } }
@Test public void shouldConvertToStringArray() { assertThat(new Arguments(new Argument("arg1"), new Argument("arg2")).toStringArray(), is(new String[]{"arg1", "arg2"})); }
private void addDescribeOfArguments(StringBuilder builder, ConfigTag configTag, GoConfigFieldWriter field) { if (field.isSubtag() && field.getValue() instanceof Arguments) { closeConfigTag(builder, field); if (field.getValue() instanceof Arguments && ((Arguments) field.getValue()).size() != 0) { for (Argument arg : (Arguments) field.getValue()) { builder.append(String.format("<arg>%s</arg>", arg.getValue())).append("\n"); } builder.append("</" + configTag.value() + ">"); } } }