in src/main/java/org/apache/sling/pipes/internal/CommandExecutorImpl.java [167:201]
List<String> getCommandList(SlingHttpServletRequest request, Map<String, Object> bindings) throws IOException {
List<String> cmds = new ArrayList<>();
if (request.getParameterMap().containsKey(REQ_PARAM_CMD)) {
cmds.add(request.getParameter(REQ_PARAM_CMD));
} else {
RequestParameter paramFile = request.getRequestParameter(REQ_PARAM_FILE);
if (paramFile != null) {
InputStream is = paramFile.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
String line;
String currentBinding = null;
StringBuilder readerBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
if (isBlankLine(line)) {
if (readerBuilder.length() > 0) {
handleInputEnd(readerBuilder, currentBinding, cmds, bindings);
readerBuilder = new StringBuilder();
currentBinding = null;
}
} else if (isJsonBinding(line)) {
Matcher matcher = DECL_BINDING_PATTERN.matcher(line);
if (matcher.find()) {
currentBinding = matcher.group(DECL_BINDING);
readerBuilder.append(matcher.group(DECL_BINDING_CONTENT).trim());
}
} else {
//depending on what we are appending, we keep lines return or not
readerBuilder.append((StringUtils.isBlank(currentBinding) ? LINE_SEPARATOR : "\n") + line.trim());
}
}
handleInputEnd(readerBuilder, currentBinding, cmds, bindings);
}
}
return cmds;
}