| @@ -70,6 +70,32 @@ catch(e) { | |||
| scripthostName = 'wsh' | |||
| WScript.Echo(WScript.FullName) | |||
| // WScript.Echo('--' + WScript.Arguments(0) + '--') | |||
| // WScript.Echo('------------ALL-----------') | |||
| // var argEnumerator = new Enumerator(WScript.Arguments) | |||
| // for(; !argEnumerator.atEnd(); argEnumerator.moveNext()){ | |||
| // WScript.Echo('-arg-' + argEnumerator.item() + '-arg-') | |||
| // } | |||
| // // Unnamed | |||
| // WScript.Echo('------------UNNAMED-----------') | |||
| // argEnumerator = new Enumerator(WScript.Arguments.Unnamed) | |||
| // for(; !argEnumerator.atEnd(); argEnumerator.moveNext()){ | |||
| // WScript.Echo('-arg-' + argEnumerator.item() + '-arg-') // Value | |||
| // } | |||
| // // Named | |||
| // WScript.Echo('------------NAMED-----------') | |||
| // argEnumerator = new Enumerator(WScript.Arguments.Named) | |||
| // for(; !argEnumerator.atEnd(); argEnumerator.moveNext()){ | |||
| // // WScript.Echo('-arg-' + argEnumerator.item(argEnumerator) + '-arg-') // Key | |||
| // WScript.Echo('-key-' + argEnumerator.item() + '-key-') // Key | |||
| // WScript.Echo('-val=' + WScript.Arguments.Named(argEnumerator.item()) + '=val-') // Value | |||
| // } | |||
| var all = WScript.Arguments.Named('all'); | |||
| console = { | |||
| log : function(m) { WScript.Echo(m)} | |||
| , error : function(m) {WScript.Echo(m) } | |||
| @@ -819,6 +845,7 @@ function __main( selectedinstance ){ | |||
| var downloadtasks = []; | |||
| var installtasks = []; | |||
| prerequisites.forEach(function(preq) { | |||
| if(!all && preq.optional) return | |||
| var p = preq.exists().then(function(exists) { | |||
| if (exists) console.log( preq.shellcmd + ' exists'); | |||
| else { | |||
| @@ -890,8 +917,10 @@ function __main( selectedinstance ){ | |||
| // var ENV = Object.assign({}, process.env); // Shallow clone it. | |||
| var WshShell = WScript.CreateObject("WScript.Shell") | |||
| var ENV = WshShell.Environment("Process") | |||
| WScript.echo( ENV("Path") ) | |||
| // WScript.echo( ENV("Path") ) | |||
| function sysAddPathVar(path){ | |||
| return true; // PB : TODO -- Not yet enabled. Remove sys path from path before saving. | |||
| // Object.assign({ | |||
| // inherit: true, shell: true, env: ENV, title: `${command} ${args}` | |||
| // }, options) | |||
| @@ -1078,6 +1107,7 @@ function __main( selectedinstance ){ | |||
| } | |||
| , { | |||
| shellcmd: 'python2' | |||
| , optional : true | |||
| , url: 'https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi' | |||
| , installer: 'python-2.7.18.amd64.msi' | |||
| , installcmd: ['MSIEXEC.exe', ['/i' | |||
| @@ -1101,8 +1131,35 @@ function __main( selectedinstance ){ | |||
| , postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') } | |||
| , exists : exists | |||
| } | |||
| , | |||
| { | |||
| , { | |||
| shellcmd: 'code' | |||
| , optional : true | |||
| , url: 'https://vscode-update.azurewebsites.net/latest/win32-x64/stable' | |||
| , installer: 'vscode-win32-x64-latest-stable.exe' | |||
| , installcmd: ['cmd', ['/c', 'start', | |||
| '/WAIT', downloadsdir + '/' + 'Git-2.33.0.2-64-bit.exe' | |||
| , '/VERYSILENT' | |||
| // , '/MERGETASKS=!runcode' // This is required only for vscode... | |||
| ]] | |||
| , preinstallsteps : function() { return Promise.resolve(true) } | |||
| , install : function() { | |||
| var self = this; | |||
| var ifns = [self.installcmd] | |||
| if(!ifns.map) ifns.map = map; | |||
| console.log('Installing') | |||
| return any(ifns.map(callsheltask))['catch'](function(e){ | |||
| if(e.code === 1602) { | |||
| console.warn("Installation was probably cancelled.") | |||
| } | |||
| else throw e | |||
| }).then(function(){ | |||
| return self.postinstallsteps() | |||
| }) | |||
| } | |||
| , postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') } | |||
| , exists : exists | |||
| } | |||
| , { | |||
| shellcmd: 'elxr' | |||
| , installcmd: [ isWin() ? 'npm.cmd' : 'npm' , ['link'], { cwd : selectedinstance.root + '\\elxr' /* cwd should be the cloned dir*/}] | |||
| , preinstallsteps: function() { | |||