UNPKG

kuduscript

Version:

Tool for generating deployment scripts for Azure Websites

560 lines (298 loc) 31.5 kB
/*** Generated by streamline 0.4.11 (callbacks) - DO NOT EDIT ***/ var __rt=require('streamline/lib/callbacks/runtime').runtime(__filename),__func=__rt.__func,__cb=__rt.__cb; var package = require("../package.json"); var fs = require("fs"); var path = require("path"); var isWindows = (process.platform === "win32"); fs.existsSync = (fs.existsSync || path.existsSync); path.sep = (path.sep || ((isWindows ? "\\" : "/"))); var templatesDir = path.join(__dirname, "templates"); var log = { info: function() { }}; var confirm = function() { return false;}; var ScriptType = { batch: "BATCH", bash: "BASH", posh: "POSH"}; var ProjectType = { wap: "WAP", website: "WEBSITE", node: "NODE", python: "PYTHON", basic: "BASIC", functionApp: "FUNCTIONAPP", dotNetConsole: "DOT_NET_CONSOLE", aspNetCore: "ASP_NET_CORE", go: "GO", ruby: "RUBY", php: "PHP"}; exports.ScriptType = ScriptType; exports.ProjectType = ProjectType; function ScriptGenerator(repositoryRoot, projectType, projectPath, solutionPath, sitePath, scriptType, scriptOutputPath, noDotDeployment, noSolution, logger, confirmFunc, useMSBuild) { argNotNull(repositoryRoot, "repositoryRoot"); argNotNull(scriptOutputPath, "scriptOutputPath"); argNotNull(projectType, "projectType"); argNotNull(sitePath, "sitePath"); projectType = projectType.toUpperCase(); if (!scriptType) { if ((((projectType === ProjectType.wap) || (projectType === ProjectType.website)) || (projectType === ProjectType.python))) { scriptType = ScriptType.batch; } else { scriptType = (isWindows ? ScriptType.batch : ScriptType.bash); } ; } else { scriptType = scriptType.toUpperCase(); if ((((scriptType !== ScriptType.batch) && (scriptType !== ScriptType.bash)) && (scriptType !== ScriptType.posh))) { throw new Error("Script type should be either batch or bash or posh"); } ; }; this.scriptType = scriptType; log = (logger || log); confirm = (confirmFunc || confirm); if (projectPath) { if (!isPathSubDir(repositoryRoot, projectPath)) { throw new Error("The project file path should be a sub-directory of the repository root"); } ; var relativeProjectPath = path.relative(repositoryRoot, projectPath); log.info((("Project file path: ." + path.sep) + relativeProjectPath)); this.projectPath = relativeProjectPath; this.absoluteProjectPath = projectPath; }; if (solutionPath) { if (!isPathSubDir(repositoryRoot, solutionPath)) { throw new Error("The solution file path should be the same as repository root or a sub-directory of it."); } ; var relativeSolutionPath = path.relative(repositoryRoot, solutionPath); log.info((("Solution file path: ." + path.sep) + relativeSolutionPath)); this.solutionPath = relativeSolutionPath; }; if (!isPathSubDir(repositoryRoot, sitePath)) { throw new Error("The site directory path should be the same as repository root or a sub-directory of it."); }; var relativeSitePath = path.relative(repositoryRoot, sitePath); if (relativeSitePath) { relativeSitePath = (path.sep + relativeSitePath); log.info(("The site directory path: ." + relativeSitePath)); }; this.sitePath = (relativeSitePath || ""); this.repositoryRoot = repositoryRoot; this.scriptOutputPath = scriptOutputPath; this.projectType = projectType; this.noDotDeployment = noDotDeployment; this.noSolution = noSolution; this.absoluteSitePath = path.join(this.repositoryRoot, this.sitePath); this.useMSBuild = useMSBuild; this.generators = []; this.generators[ProjectType.wap] = generateWapDeploymentScript; this.generators[ProjectType.website] = generateWebSiteDeploymentScript; this.generators[ProjectType.node] = generateNodeDeploymentScript; this.generators[ProjectType.python] = generatePythonDeploymentScript; this.generators[ProjectType.basic] = generateBasicWebSiteDeploymentScript; this.generators[ProjectType.functionApp] = generateFunctionAppDeploymentScript; this.generators[ProjectType.dotNetConsole] = generateDotNetConsoleDeploymentScript; this.generators[ProjectType.aspNetCore] = generateAspNetCoreDeploymentScript; this.generators[ProjectType.go] = generateGoDeploymentScript; this.generators[ProjectType.ruby] = generateRubyDeploymentScript; this.generators[ProjectType.php] = generatePHPDeploymentScript;}; function generateGoDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateGoDeploymentScript", line: 136 }; return __func(_, this, arguments, generateGoDeploymentScript, 1, __frame, function __$generateGoDeploymentScript() { return scriptGenerator.generateGoDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateAspNetCoreDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateAspNetCoreDeploymentScript", line: 140 }; return __func(_, this, arguments, generateAspNetCoreDeploymentScript, 1, __frame, function __$generateAspNetCoreDeploymentScript() { return scriptGenerator.generateAspNetCoreDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateDotNetConsoleDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateDotNetConsoleDeploymentScript", line: 144 }; return __func(_, this, arguments, generateDotNetConsoleDeploymentScript, 1, __frame, function __$generateDotNetConsoleDeploymentScript() { return scriptGenerator.generateDotNetConsoleDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateWapDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateWapDeploymentScript", line: 148 }; return __func(_, this, arguments, generateWapDeploymentScript, 1, __frame, function __$generateWapDeploymentScript() { return scriptGenerator.generateWapDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateWebSiteDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateWebSiteDeploymentScript", line: 152 }; return __func(_, this, arguments, generateWebSiteDeploymentScript, 1, __frame, function __$generateWebSiteDeploymentScript() { return scriptGenerator.generateWebSiteDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateNodeDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateNodeDeploymentScript", line: 156 }; return __func(_, this, arguments, generateNodeDeploymentScript, 1, __frame, function __$generateNodeDeploymentScript() { return scriptGenerator.generateNodeDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generatePythonDeploymentScript(scriptGenerator, _) { var __frame = { name: "generatePythonDeploymentScript", line: 160 }; return __func(_, this, arguments, generatePythonDeploymentScript, 1, __frame, function __$generatePythonDeploymentScript() { return scriptGenerator.generatePythonDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateRubyDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateRubyDeploymentScript", line: 164 }; return __func(_, this, arguments, generateRubyDeploymentScript, 1, __frame, function __$generateRubyDeploymentScript() { return scriptGenerator.generateRubyDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generatePHPDeploymentScript(scriptGenerator, _) { var __frame = { name: "generatePHPDeploymentScript", line: 168 }; return __func(_, this, arguments, generatePHPDeploymentScript, 1, __frame, function __$generatePHPDeploymentScript() { return scriptGenerator.generatePHPDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; function generateBasicWebSiteDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateBasicWebSiteDeploymentScript", line: 172 }; return __func(_, this, arguments, generateBasicWebSiteDeploymentScript, 1, __frame, function __$generateBasicWebSiteDeploymentScript() { if (scriptGenerator.solutionPath) { return _(new Error("Solution path is not supported with this website type")); } ; return scriptGenerator.generateWebSiteDeploymentScript(__cb(_, __frame, 4, 2, _, true)); });}; function generateFunctionAppDeploymentScript(scriptGenerator, _) { var __frame = { name: "generateFunctionAppDeploymentScript", line: 179 }; return __func(_, this, arguments, generateFunctionAppDeploymentScript, 1, __frame, function __$generateFunctionAppDeploymentScript() { return scriptGenerator.generateFunctionAppDeploymentScript(__cb(_, __frame, 1, 2, _, true)); });}; ScriptGenerator.prototype.generateDeploymentScript = function ScriptGenerator_prototype_generateDeploymentScript__1(_) { var generator, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateDeploymentScript__1", line: 183 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateDeploymentScript__1, 0, __frame, function __$ScriptGenerator_prototype_generateDeploymentScript__1() { generator = __this.generators[__this.projectType]; if (!generator) { return _(new Error(("Invalid project type received: " + __this.projectType))); } ; return generator(__this, __cb(_, __frame, 6, 2, _, true)); });}; function isPathSubDir(parentPath, childPath) { var relativePath = path.relative(parentPath, childPath); return ((relativePath.indexOf("..") !== 0) && (relativePath !== path.resolve(childPath)));}; ScriptGenerator.prototype.generateGoDeploymentScript = function ScriptGenerator_prototype_generateGoDeploymentScript__2(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generateGoDeploymentScript__2", line: 202 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateGoDeploymentScript__2, 0, __frame, function __$ScriptGenerator_prototype_generateGoDeploymentScript__2() { log.info("Generating deployment script for Go Web Site"); return __this.generateBasicDeploymentScript("go.template", __cb(_, __frame, 3, 2, _, true)); });}; ScriptGenerator.prototype.generateNodeDeploymentScript = function ScriptGenerator_prototype_generateNodeDeploymentScript__3(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generateNodeDeploymentScript__3", line: 208 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateNodeDeploymentScript__3, 0, __frame, function __$ScriptGenerator_prototype_generateNodeDeploymentScript__3() { log.info("Generating deployment script for node.js Web Site"); return __this.generateBasicDeploymentScript("node.template", __cb(_, __frame, 3, 2, _, true)); });}; ScriptGenerator.prototype.generateFunctionAppDeploymentScript = function ScriptGenerator_prototype_generateFunctionAppDeploymentScript__4(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generateFunctionAppDeploymentScript__4", line: 214 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateFunctionAppDeploymentScript__4, 0, __frame, function __$ScriptGenerator_prototype_generateFunctionAppDeploymentScript__4() { log.info("Generating deployment script for function App"); options = { }; return (function __$ScriptGenerator_prototype_generateFunctionAppDeploymentScript__4(__then) { if (__this.projectPath) { if ((__this.scriptType == ScriptType.bash)) { return _(new Error("csharp function targeting dotnet core is currently not supported")); } ; options.projectPath = fixPathSeparatorToWindows(__this.projectPath); if (__this.solutionPath) { options.RestoreArguments = fixPathSeparatorToWindows(__this.solutionPath); } else { options.RestoreArguments = options.projectPath; } ; return __this.generateFunctionAppScript("functionmsbuild.template", options, __cb(_, __frame, 15, 4, __then, true)); } else { if ((__this.scriptType == ScriptType.bash)) { options.sitePath = fixPathSeparatorToUnix(__this.sitePath); } else { options.sitePath = fixPathSeparatorToWindows(__this.sitePath); } ; return __this.generateFunctionAppScript("functionbasic.template", options, __cb(_, __frame, 24, 4, __then, true)); } ; })(_); });}; ScriptGenerator.prototype.generatePythonDeploymentScript = function ScriptGenerator_prototype_generatePythonDeploymentScript__5(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generatePythonDeploymentScript__5", line: 243 }; return __func(_, this, arguments, ScriptGenerator_prototype_generatePythonDeploymentScript__5, 0, __frame, function __$ScriptGenerator_prototype_generatePythonDeploymentScript__5() { log.info("Generating deployment script for python Web Site"); if ((__this.scriptType != ScriptType.batch)) { return _(new Error("Only batch script files are supported for python Web Site")); } ; return __this.generateBasicDeploymentScript("python.template", __cb(_, __frame, 7, 2, _, true)); });}; ScriptGenerator.prototype.generateRubyDeploymentScript = function ScriptGenerator_prototype_generateRubyDeploymentScript__6(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generateRubyDeploymentScript__6", line: 253 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateRubyDeploymentScript__6, 0, __frame, function __$ScriptGenerator_prototype_generateRubyDeploymentScript__6() { log.info("Generating deployment script for Ruby Web Site"); return __this.generateBasicDeploymentScript("ruby.template", __cb(_, __frame, 3, 2, _, true)); });}; ScriptGenerator.prototype.generatePHPDeploymentScript = function ScriptGenerator_prototype_generatePHPDeploymentScript__7(_) { var __this = this; var __frame = { name: "ScriptGenerator_prototype_generatePHPDeploymentScript__7", line: 259 }; return __func(_, this, arguments, ScriptGenerator_prototype_generatePHPDeploymentScript__7, 0, __frame, function __$ScriptGenerator_prototype_generatePHPDeploymentScript__7() { log.info("Generating deployment script for PHP Web Site"); return __this.generateBasicDeploymentScript("php.template", __cb(_, __frame, 3, 2, _, true)); });}; ScriptGenerator.prototype.generateWapDeploymentScript = function ScriptGenerator_prototype_generateWapDeploymentScript__8(_) { var msbuildArguments, msbuildArgumentsForInPlace, solutionDir, solutionArgs, options, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateWapDeploymentScript__8", line: 265 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateWapDeploymentScript__8, 0, __frame, function __$ScriptGenerator_prototype_generateWapDeploymentScript__8() { argNotNull(__this.projectPath, "projectPath"); if (((__this.scriptType != ScriptType.batch) && (__this.scriptType != ScriptType.posh))) { return _(new Error("Only batch and posh script files are supported for .NET Web Application")); } ; if ((!__this.solutionPath && !__this.noSolution)) { return _(new Error("Missing solution file path (--solutionFile), to explicitly not require a solution use the flag --no-solution")); } ; log.info("Generating deployment script for .NET Web Application"); if ((__this.scriptType == ScriptType.batch)) { msbuildArguments = (("\"%DEPLOYMENT_SOURCE%\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir=\"%DEPLOYMENT_TEMP%\";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false"); msbuildArgumentsForInPlace = (("\"%DEPLOYMENT_SOURCE%\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false"); if (__this.solutionPath) { solutionDir = path.dirname(__this.solutionPath); solutionArgs = ((" /p:SolutionDir=\"%DEPLOYMENT_SOURCE%\\" + solutionDir) + "\\\\\""); msbuildArguments += solutionArgs; msbuildArgumentsForInPlace += solutionArgs; } ; msbuildArguments += " %SCM_BUILD_ARGS%"; msbuildArgumentsForInPlace += " %SCM_BUILD_ARGS%"; } else { msbuildArguments = (("\"$DEPLOYMENT_SOURCE\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir=\"$DEPLOYMENT_TEMP\"`;AutoParameterizationWebConfigConnectionStrings=false`;Configuration=Release`;UseSharedCompilation=false"); msbuildArgumentsForInPlace = (("\"$DEPLOYMENT_SOURCE\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false`;Configuration=Release`;UseSharedCompilation=false"); if (__this.solutionPath) { solutionDir = path.dirname(__this.solutionPath); solutionArgs = ((" /p:SolutionDir=\"$DEPLOYMENT_SOURCE\\" + solutionDir) + "\\\\\""); msbuildArguments += solutionArgs; msbuildArgumentsForInPlace += solutionArgs; } ; msbuildArguments += " $env:SCM_BUILD_ARGS"; msbuildArgumentsForInPlace += " $env:SCM_BUILD_ARGS"; } ; options = { msbuildArguments: msbuildArguments, msbuildArgumentsForInPlace: msbuildArgumentsForInPlace }; return __this.generateDotNetDeploymentScript("aspnet.wap.template", options, __cb(_, __frame, 48, 2, _, true)); });}; ScriptGenerator.prototype.generateAspNetCoreDeploymentScript = function ScriptGenerator_prototype_generateAspNetCoreDeploymentScript__9(_) { var options, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateAspNetCoreDeploymentScript__9", line: 316 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateAspNetCoreDeploymentScript__9, 0, __frame, function __$ScriptGenerator_prototype_generateAspNetCoreDeploymentScript__9() { argNotNull(__this.absoluteProjectPath, "absoluteProjectPath"); options = { }; options.RestoreArguments = (((__this.solutionPath) ? __this.solutionPath : __this.projectPath)); options.DotnetpublishArguments = __this.projectPath; return __this.generateAspNetCoreScript("aspnet.core.template", options, __cb(_, __frame, 9, 2, _, true)); });}; ScriptGenerator.prototype.generateDotNetConsoleDeploymentScript = function ScriptGenerator_prototype_generateDotNetConsoleDeploymentScript__10(_) { var msbuildArguments, solutionDir, solutionArgs, options, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateDotNetConsoleDeploymentScript__10", line: 329 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateDotNetConsoleDeploymentScript__10, 0, __frame, function __$ScriptGenerator_prototype_generateDotNetConsoleDeploymentScript__10() { argNotNull(__this.projectPath, "projectPath"); if (((__this.scriptType != ScriptType.batch) && (__this.scriptType != ScriptType.posh))) { return _(new Error("Only batch and posh script files are supported for .NET Web Application")); } ; if ((!__this.solutionPath && !__this.noSolution)) { return _(new Error("Missing solution file path (--solutionFile), to explicitly not require a solution use the flag --no-solution")); } ; log.info("Generating deployment script for .NET console application"); if ((__this.scriptType == ScriptType.batch)) { msbuildArguments = (("\"%DEPLOYMENT_SOURCE%\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /p:Configuration=Release;OutputPath=\"%DEPLOYMENT_TEMP%\\app_data\\jobs\\continuous\\deployedJob\";UseSharedCompilation=false"); if (__this.solutionPath) { solutionDir = path.dirname(__this.solutionPath); solutionArgs = ((" /p:SolutionDir=\"%DEPLOYMENT_SOURCE%\\" + solutionDir) + "\\\\\""); msbuildArguments += solutionArgs; } ; msbuildArguments += " %SCM_BUILD_ARGS%"; } else { msbuildArguments = (("\"$DEPLOYMENT_SOURCE\\" + __this.projectPath) + "\" /nologo /verbosity:m /t:Build /p:Configuration=Release`;OutputPath=\"$DEPLOYMENT_TEMP\\app_data\\jobs\\continuous\\deployedJob\"`;UseSharedCompilation=false"); if (__this.solutionPath) { solutionDir = path.dirname(__this.solutionPath); solutionArgs = ((" /p:SolutionDir=\"$DEPLOYMENT_SOURCE\\" + solutionDir) + "\\\\\""); msbuildArguments += solutionArgs; } ; msbuildArguments += " $env:SCM_BUILD_ARGS"; } ; options = { msbuildArguments: msbuildArguments, msbuildArgumentsForInPlace: msbuildArguments }; return __this.generateDotNetDeploymentScript("dotnetconsole.template", options, __cb(_, __frame, 42, 2, _, true)); });}; ScriptGenerator.prototype.generateWebSiteDeploymentScript = function ScriptGenerator_prototype_generateWebSiteDeploymentScript__11(_) { var msbuildArguments, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateWebSiteDeploymentScript__11", line: 374 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateWebSiteDeploymentScript__11, 0, __frame, function __$ScriptGenerator_prototype_generateWebSiteDeploymentScript__11() { return (function __$ScriptGenerator_prototype_generateWebSiteDeploymentScript__11(__then) { if (__this.solutionPath) { log.info("Generating deployment script for .NET Web Site"); if (((__this.scriptType != ScriptType.batch) && (__this.scriptType != ScriptType.posh))) { return _(new Error("Only batch and posh script files are supported for .NET Web Site")); } ; if ((__this.scriptType == ScriptType.batch)) { msbuildArguments = (("\"%DEPLOYMENT_SOURCE%\\" + fixPathSeparatorToWindows(__this.solutionPath)) + "\" /verbosity:m /nologo %SCM_BUILD_ARGS%"); } else { msbuildArguments = (("\"$DEPLOYMENT_SOURCE\\" + fixPathSeparatorToWindows(__this.solutionPath)) + "\" /verbosity:m /nologo $env:SCM_BUILD_ARGS"); } ; return __this.generateDotNetDeploymentScript("aspnet.website.template", { msbuildArguments: msbuildArguments }, __cb(_, __frame, 17, 4, __then, true)); } else { log.info("Generating deployment script for Web Site"); return __this.generateBasicDeploymentScript("basic.template", __cb(_, __frame, 21, 4, __then, true)); } ; })(_); });}; ScriptGenerator.prototype.generateBasicDeploymentScript = function ScriptGenerator_prototype_generateBasicDeploymentScript__12(templateFileName, _) { var lowerCaseScriptType, fixedSitePath, templateContent, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateBasicDeploymentScript__12", line: 399 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateBasicDeploymentScript__12, 1, __frame, function __$ScriptGenerator_prototype_generateBasicDeploymentScript__12() { argNotNull(templateFileName, "templateFileName"); lowerCaseScriptType = __this.scriptType.toLowerCase(); fixedSitePath = ((__this.scriptType === ScriptType.batch) ? fixPathSeparatorToWindows(__this.sitePath) : fixPathSeparatorToUnix(__this.sitePath)); templateContent = getTemplatesContent([(("deploy." + lowerCaseScriptType) + ".prefix.template"),((("deploy." + lowerCaseScriptType) + ".") + templateFileName),(("deploy." + lowerCaseScriptType) + ".postfix.template"),]).replace(/{SitePath}/g, fixedSitePath); return __this.writeDeploymentFiles(templateContent, __cb(_, __frame, 11, 2, _, true)); });}; ScriptGenerator.prototype.generateFunctionAppScript = function ScriptGenerator_prototype_generateFunctionAppScript__13(templateFileName, options, _) { var lowerCaseScriptType, templateContent, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateFunctionAppScript__13", line: 413 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateFunctionAppScript__13, 2, __frame, function __$ScriptGenerator_prototype_generateFunctionAppScript__13() { argNotNull(templateFileName, "templateFileName"); lowerCaseScriptType = __this.scriptType.toLowerCase(); templateContent = getTemplatesContent([(("deploy." + lowerCaseScriptType) + ".prefix.template"),((("deploy." + lowerCaseScriptType) + ".") + templateFileName),(("deploy." + lowerCaseScriptType) + ".postfix.template"),]).replace(/{SitePath}/g, options.sitePath).replace(/{RestoreArguments}/g, options.RestoreArguments).replace(/{ProjectPath}/g, options.projectPath); return __this.writeDeploymentFiles(templateContent, __cb(_, __frame, 12, 2, _, true)); });}; ScriptGenerator.prototype.generateDotNetDeploymentScript = function ScriptGenerator_prototype_generateDotNetDeploymentScript__14(templateFileName, options, _) { var lowerCaseScriptType, solutionDir, templateContent, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateDotNetDeploymentScript__14", line: 428 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateDotNetDeploymentScript__14, 2, __frame, function __$ScriptGenerator_prototype_generateDotNetDeploymentScript__14() { argNotNull(templateFileName, "templateFileName"); lowerCaseScriptType = __this.scriptType.toLowerCase(); solutionDir = (__this.solutionPath ? path.dirname(__this.solutionPath) : ""); templateContent = getTemplatesContent([(("deploy." + lowerCaseScriptType) + ".prefix.template"),(("deploy." + lowerCaseScriptType) + ".aspnet.template"),((("deploy." + lowerCaseScriptType) + ".") + templateFileName),(("deploy." + lowerCaseScriptType) + ".postfix.template"),]).replace(/{MSBuildArguments}/g, (options.msbuildArguments || "")).replace(/{MSBuildArgumentsForInPlace}/g, (options.msbuildArgumentsForInPlace || "")).replace(/{SolutionPath}/g, (__this.solutionPath || "")).replace(/{SolutionDir}/g, solutionDir).replace(/{SitePath}/g, fixPathSeparatorToWindows(__this.sitePath)); return __this.writeDeploymentFiles(templateContent, __cb(_, __frame, 17, 2, _, true)); });}; ScriptGenerator.prototype.generateAspNetCoreScript = function ScriptGenerator_prototype_generateAspNetCoreScript__15(templateFileName, options, _) { var prop, lowerCaseScriptType, templateContent, __this = this; var __frame = { name: "ScriptGenerator_prototype_generateAspNetCoreScript__15", line: 448 }; return __func(_, this, arguments, ScriptGenerator_prototype_generateAspNetCoreScript__15, 2, __frame, function __$ScriptGenerator_prototype_generateAspNetCoreScript__15() { argNotNull(templateFileName, "templateFileName"); if ((__this.scriptType === ScriptType.batch)) { for (prop in options) { options[prop] = fixPathSeparatorToWindows(options[prop]); }; } else { for (prop in options) { options[prop] = fixPathSeparatorToUnix(options[prop]); }; } ; lowerCaseScriptType = __this.scriptType.toLowerCase(); templateContent = getTemplatesContent([(("deploy." + lowerCaseScriptType) + ".prefix.template"),(("deploy." + lowerCaseScriptType) + ".aspnet.template"),((("deploy." + lowerCaseScriptType) + ".") + templateFileName),(("deploy." + lowerCaseScriptType) + ".postfix.template"),]).replace(/{DotnetpublishArguments}/g, options.DotnetpublishArguments).replace(/{RestoreArguments}/g, options.RestoreArguments); return __this.writeDeploymentFiles(templateContent, __cb(_, __frame, 22, 2, _, true)); });}; function getTemplatesContent(fileNames) { var content = ""; for (var i in fileNames) { content += getTemplateContent(fileNames[i]); }; content = content.replace(/{Version}/g, package.version); return content;}; function fixPathSeparatorToWindows(pathStr) { return (pathStr ? pathStr.replace(/\//g, "\\") : pathStr);}; function fixPathSeparatorToUnix(pathStr) { return (pathStr ? pathStr.replace(/\\/g, "/") : pathStr);}; function fixLineEndingsToUnix(contentStr) { return contentStr.replace(/\r\n/g, "\n");}; function fixLineEndingsToWindows(contentStr) { return contentStr.replace(/(?:\r\n|\n)/g, "\r\n");}; ScriptGenerator.prototype.writeDeploymentFiles = function ScriptGenerator_prototype_writeDeploymentFiles__16(templateContent, _) { var deployScriptFileName, deploymentCommand, deployScriptPath, deploymentFilePath, __this = this; var __frame = { name: "ScriptGenerator_prototype_writeDeploymentFiles__16", line: 501 }; return __func(_, this, arguments, ScriptGenerator_prototype_writeDeploymentFiles__16, 1, __frame, function __$ScriptGenerator_prototype_writeDeploymentFiles__16() { argNotNull(templateContent, "templateContent"); if ((__this.scriptType == ScriptType.batch)) { deployScriptFileName = "deploy.cmd"; deploymentCommand = deployScriptFileName; templateContent = fixLineEndingsToWindows(templateContent); } else { if ((__this.scriptType == ScriptType.posh)) { deployScriptFileName = "deploy.ps1"; deploymentCommand = (("powershell -NoProfile -NoLogo -ExecutionPolicy Unrestricted -Command \"& \"$pwd\\" + deployScriptFileName) + "\" 2>&1 | echo\""); templateContent = fixLineEndingsToWindows(templateContent); } else { deployScriptFileName = "deploy.sh"; deploymentCommand = ("bash " + deployScriptFileName); templateContent = fixLineEndingsToUnix(templateContent); } ; } ; deployScriptPath = path.join(__this.scriptOutputPath, deployScriptFileName); deploymentFilePath = path.join(__this.repositoryRoot, ".deployment"); return writeContentToFile(deployScriptPath, templateContent, __cb(_, __frame, 23, 2, function __$ScriptGenerator_prototype_writeDeploymentFiles__16() { return (function __$ScriptGenerator_prototype_writeDeploymentFiles__16(__then) { if (!__this.noDotDeployment) { return writeContentToFile(deploymentFilePath, ("[config]\ncommand = " + deploymentCommand), __cb(_, __frame, 27, 4, __then, true)); } else { __then(); } ; })(function __$ScriptGenerator_prototype_writeDeploymentFiles__16() { log.info("Generated deployment script files"); _(); }); }, true)); });}; function getTemplateContent(templateFileName) { return fs.readFileSync(getTemplatePath(templateFileName), "utf8");}; function getTemplatePath(fileName) { return path.join(templatesDir, fileName);}; function writeContentToFile(path, content, _) { var __frame = { name: "writeContentToFile", line: 542 }; return __func(_, this, arguments, writeContentToFile, 2, __frame, function __$writeContentToFile() { return (function __$writeContentToFile(__then) { if (fs.existsSync(path)) { return confirm((("The file: \"" + path) + "\" already exists\nAre you sure you want to overwrite it (y/n): "), __cb(_, __frame, 3, 9, function ___(__0, __2) { var __1 = !__2; return (function __$writeContentToFile(__then) { if (__1) { return _(null); } else { __then(); } ; })(__then); }, true)); } else { __then(); } ; })(function __$writeContentToFile() { return fs.writeFile(path, content, __cb(_, __frame, 9, 2, _, true)); }); });}; function argNotNull(arg, argName) { if (((arg === null) || (arg === undefined))) { throw new Error((("The argument \"" + argName) + "\" is null")); };}; exports.ScriptGenerator = ScriptGenerator;