|
@@ -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));
|
|
|
+ }
|
|
|
}
|