|
|
|
@ -41,6 +41,7 @@ import java.nio.file.StandardOpenOption;
|
|
|
|
|
import java.nio.file.attribute.FileAttribute; |
|
|
|
|
import java.nio.file.attribute.PosixFilePermission; |
|
|
|
|
import java.nio.file.attribute.PosixFilePermissions; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Set; |
|
|
|
@ -133,26 +134,7 @@ public class ShellTask extends AbstractTask {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String script = shellParameters.getRawScript().replaceAll("\\r\\n", "\n"); |
|
|
|
|
// combining local and global parameters
|
|
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(ParamUtils.getUserDefParamsMap(taskExecutionContext.getDefinedParams()), |
|
|
|
|
taskExecutionContext.getDefinedParams(), |
|
|
|
|
shellParameters.getLocalParametersMap(), |
|
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), |
|
|
|
|
taskExecutionContext.getScheduleTime()); |
|
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
|
|
if (taskExecutionContext.getScheduleTime() != null) { |
|
|
|
|
if (null == paramsMap) { |
|
|
|
|
paramsMap = new HashMap<>(); |
|
|
|
|
} |
|
|
|
|
String dateTime = DateUtils.format(DateUtils.add(taskExecutionContext.getScheduleTime(), DAY_OF_MONTH, 1), Constants.PARAMETER_FORMAT_TIME); |
|
|
|
|
Property p = new Property(); |
|
|
|
|
p.setValue(dateTime); |
|
|
|
|
p.setProp(Constants.PARAMETER_DATETIME); |
|
|
|
|
paramsMap.put(Constants.PARAMETER_DATETIME, p); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
|
|
|
|
|
|
script = parseScript(script); |
|
|
|
|
shellParameters.setRawScript(script); |
|
|
|
|
|
|
|
|
|
logger.info("raw script : {}", shellParameters.getRawScript()); |
|
|
|
@ -177,4 +159,28 @@ public class ShellTask extends AbstractTask {
|
|
|
|
|
return shellParameters; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String parseScript(String script) { |
|
|
|
|
// combining local and global parameters
|
|
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(ParamUtils.getUserDefParamsMap(taskExecutionContext.getDefinedParams()), |
|
|
|
|
taskExecutionContext.getDefinedParams(), |
|
|
|
|
shellParameters.getLocalParametersMap(), |
|
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), |
|
|
|
|
taskExecutionContext.getScheduleTime()); |
|
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
|
|
if (taskExecutionContext.getScheduleTime() != null) { |
|
|
|
|
if (paramsMap == null) { |
|
|
|
|
paramsMap = new HashMap<>(); |
|
|
|
|
} |
|
|
|
|
Date date = taskExecutionContext.getScheduleTime(); |
|
|
|
|
if (CommandType.COMPLEMENT_DATA.getCode() == taskExecutionContext.getCmdTypeIfComplement()) { |
|
|
|
|
date = DateUtils.add(taskExecutionContext.getScheduleTime(), DAY_OF_MONTH, 1); |
|
|
|
|
} |
|
|
|
|
String dateTime = DateUtils.format(date, Constants.PARAMETER_FORMAT_TIME); |
|
|
|
|
Property p = new Property(); |
|
|
|
|
p.setValue(dateTime); |
|
|
|
|
p.setProp(Constants.PARAMETER_DATETIME); |
|
|
|
|
paramsMap.put(Constants.PARAMETER_DATETIME, p); |
|
|
|
|
} |
|
|
|
|
return ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|