transformationRules.forEach(function(rule) { var args = ParameterParser.parse(rule); if(Object.keys(args).length < 2 || !args["transform"] || !args["xml"]) { tl.error(tl.loc("MissingArgumentsforXMLTransformation")); } else if(Object.keys(args).length > 2) { isTransformationApplied = xdtTransformationUtility.specialXdtTransformation(folderPath, args["transform"].value, args["xml"].value, args["result"].value) && isTransformationApplied; } else { isTransformationApplied = xdtTransformationUtility.specialXdtTransformation(folderPath, args["transform"].value, args["xml"].value) && isTransformationApplied; } });
export function fileTransformations(isFolderBasedDeployment: boolean, JSONFiles: any, xmlTransformation: boolean, xmlVariableSubstitution: boolean, folderPath: string) { if(xmlTransformation) { var environmentName = tl.getVariable('Release.EnvironmentName'); if(tl.osType().match(/^Win/)) { var transformConfigs = ["Release.config"]; if(environmentName && environmentName != 'Release') { transformConfigs.push(environmentName + ".config"); } xdtTransformationUtility.basicXdtTransformation(folderPath, transformConfigs); console.log(tl.loc("XDTTransformationsappliedsuccessfully")); } else { throw new Error(tl.loc("CannotPerformXdtTransformationOnNonWindowsPlatform")); } } if(xmlVariableSubstitution) { xmlSubstitutionUtility.substituteAppSettingsVariables(folderPath, isFolderBasedDeployment); console.log(tl.loc('XMLvariablesubstitutionappliedsuccessfully')); } if(JSONFiles.length != 0) { jsonSubstitutionUtility.jsonVariableSubstitution(folderPath, JSONFiles); console.log(tl.loc('JSONvariablesubstitutionappliedsuccessfully')); } }
export function advancedFileTransformations(isFolderBasedDeployment: boolean, targetFiles: any, xmlTransformation: boolean, variableSubstitutionFileFormat: string, folderPath: string, transformationRules: any) { if(xmlTransformation) { if(!tl.osType().match(/^Win/)) { throw Error(tl.loc("CannotPerformXdtTransformationOnNonWindowsPlatform")); } else { let isTransformationApplied: boolean = true; if(transformationRules.length > 0) { transformationRules.forEach(function(rule) { var args = ParameterParser.parse(rule); if(Object.keys(args).length < 2 || !args["transform"] || !args["xml"]) { tl.error(tl.loc("MissingArgumentsforXMLTransformation")); } else if(Object.keys(args).length > 2) { isTransformationApplied = xdtTransformationUtility.specialXdtTransformation(folderPath, args["transform"].value, args["xml"].value, args["result"].value) && isTransformationApplied; } else { isTransformationApplied = xdtTransformationUtility.specialXdtTransformation(folderPath, args["transform"].value, args["xml"].value) && isTransformationApplied; } }); } else{ var environmentName = tl.getVariable('Release.EnvironmentName'); let transformConfigs = ["Release.config"]; if(environmentName && environmentName.toLowerCase() != 'release') { transformConfigs.push(environmentName + ".config"); } isTransformationApplied = xdtTransformationUtility.basicXdtTransformation(folderPath, transformConfigs); } if(isTransformationApplied) { console.log(tl.loc("XDTTransformationsappliedsuccessfully")); } } } if(variableSubstitutionFileFormat === "xml") { if(targetFiles.length == 0) { xmlSubstitutionUtility.substituteAppSettingsVariables(folderPath, isFolderBasedDeployment); } else { targetFiles.forEach(function(fileName) { xmlSubstitutionUtility.substituteAppSettingsVariables(folderPath, isFolderBasedDeployment, fileName); }); } console.log(tl.loc('XMLvariablesubstitutionappliedsuccessfully')); } if(variableSubstitutionFileFormat === "json") { // For Json variable substitution if no target files are specified file files matching **\*.json if(!targetFiles || targetFiles.length == 0) { targetFiles = ["**/*.json"]; } jsonSubstitutionUtility.jsonVariableSubstitution(folderPath, targetFiles, true); console.log(tl.loc('JSONvariablesubstitutionappliedsuccessfully')); } }
export async function fileTransformations(isFolderBasedDeployment: boolean, JSONFiles: any, xmlTransformation: boolean, xmlVariableSubstitution: boolean, webDeployPkg: string) { var tempPackagePath; var folderPath = utility.generateTemporaryFolderOrZipPath(tl.getVariable('System.DefaultWorkingDirectory'), true); if(isFolderBasedDeployment) { tl.cp(path.join(webDeployPkg, '/*'), folderPath, '-rf', false); } else { await zipUtility.unzip(webDeployPkg, folderPath); } if(xmlTransformation) { var environmentName = tl.getVariable('Release.EnvironmentName'); if(tl.osType().match(/^Win/)) { var transformConfigs = ["Release.config"]; if(environmentName) { transformConfigs.push(environmentName + ".config"); } xdtTransformationUtility.basicXdtTransformation(folderPath, transformConfigs); console.log(tl.loc("XDTTransformationsappliedsuccessfully")); } else { throw new Error(tl.loc("CannotPerformXdtTransformationOnNonWindowsPlatform")); } } if(xmlVariableSubstitution) { await xmlSubstitutionUtility.substituteAppSettingsVariables(folderPath); console.log(tl.loc('XMLvariablesubstitutionappliedsuccessfully')); } if(JSONFiles.length != 0) { jsonSubstitutionUtility.jsonVariableSubstitution(folderPath, JSONFiles); console.log(tl.loc('JSONvariablesubstitutionappliedsuccessfully')); } if(isFolderBasedDeployment) { tempPackagePath = folderPath; webDeployPkg = folderPath; } else { var tempWebPackageZip = utility.generateTemporaryFolderOrZipPath(tl.getVariable('System.DefaultWorkingDirectory'), false); webDeployPkg = await zipUtility.archiveFolder(folderPath, "", tempWebPackageZip); tempPackagePath = webDeployPkg; tl.rmRF(folderPath, true); } return { "webDeployPkg": webDeployPkg, "tempPackagePath": tempPackagePath }; }
export function fileTransformations(isFolderBasedDeployment: boolean, JSONFiles: any, xmlTransformation: boolean, xmlVariableSubstitution: boolean, folderPath: string, isMSBuildPackage: boolean) { if(xmlTransformation) { if(isMSBuildPackage) { var debugMode = tl.getVariable('system.debug'); if(debugMode && debugMode.toLowerCase() == 'true') { tl.warning(tl.loc('AutoParameterizationMessage')); } else { console.log(tl.loc('AutoParameterizationMessage')); } } var environmentName = tl.getVariable('Release.EnvironmentName'); if(tl.osType().match(/^Win/)) { var transformConfigs = ["Release.config"]; if(environmentName && environmentName.toLowerCase() != 'release') { transformConfigs.push(environmentName + ".config"); } var isTransformationApplied: boolean = xdtTransformationUtility.basicXdtTransformation(folderPath, transformConfigs); if(isTransformationApplied) { console.log(tl.loc("XDTTransformationsappliedsuccessfully")); } } else { throw new Error(tl.loc("CannotPerformXdtTransformationOnNonWindowsPlatform")); } } if(xmlVariableSubstitution) { xmlSubstitutionUtility.substituteAppSettingsVariables(folderPath, isFolderBasedDeployment); console.log(tl.loc('XMLvariablesubstitutionappliedsuccessfully')); } if(JSONFiles.length != 0) { jsonSubstitutionUtility.jsonVariableSubstitution(folderPath, JSONFiles); console.log(tl.loc('JSONvariablesubstitutionappliedsuccessfully')); } }
var path = require('path'); var ltx = require('ltx'); var xdtTransform = require('webdeployment-common/xdttransformationutility.js'); process.env["SYSTEM_DEFAULTWORKINGDIRECTORY"] = path.join(__dirname, 'L1XdtTransform'); xdtTransform.applyXdtTransformation(path.join(__dirname, 'L1XdtTransform', 'Web_test.config'), path.join(__dirname, 'L1XdtTransform', 'Web.Debug.config')); process.env['SYSTEM_DEFAULTWORKINGDIRECTORY'] = 'DefaultWorkingDirectory';