@Override
	public BuildSpec updateObject(BuildSpec buildSpec) {
		// Artifacts
		List<Artifact> artifacts = buildSpec.getArtifacts();
		if (artifacts != null) {
			artifacts.forEach(artifact -> {
				artifact.setSource(WindowsUtil.updateToUnixFileSeparator(artifact.getSource()));
			});
			buildSpec.setArtifacts(artifacts);
		}

		// Config Commands Script
		String configCmdScript = buildSpec.getConfigCommandsScript();
		if (StringUtils.isNotBlank(configCmdScript)) {
			buildSpec.setConfigCommandsScript(WindowsUtil.updateToUnixFileSeparator(configCmdScript));
		}

		// Run Commands Script
		String runCmdScripts = buildSpec.getRunCommandsScript();
		if (StringUtils.isNotBlank(runCmdScripts)) {
			buildSpec.setRunCommandsScript(WindowsUtil.updateToUnixFileSeparator(runCmdScripts));
		}
		return buildSpec;
	}
Updates the "build spec" directive from the service spec before processing the
service spec for deployment. Update operation is like a pre-processor and
does not change the state of the service spec

@author tushart
workflow-controller/controller-service/src/main/java/io/hyscale/controller/directive/impl/BuildSpecJsonHandler.java