|  |  | @@ -84,6 +84,19 @@ function any(iterable, continueOnFailure) { | 
		
	
		
			
			|  |  |  | ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var isRunningElevated = ()=>{ | 
		
	
		
			
			|  |  |  | return nodeShellExec( "fsutil", ["dirty", "query", "C:"], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | , title : `check privileged execution mode using fsutil dirty query C:` | 
		
	
		
			
			|  |  |  | }).then((exitcode)=>{ | 
		
	
		
			
			|  |  |  | console.log('Elevated') | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | }).catch(()=>{ | 
		
	
		
			
			|  |  |  | console.log('Not Elevated'); | 
		
	
		
			
			|  |  |  | throw false; | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var cli = 'elxr'; | 
		
	
	
		
			
			|  |  | @@ -214,6 +227,23 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'runas' : ()=>{ | 
		
	
		
			
			|  |  |  | return isRunningElevated().then( | 
		
	
		
			
			|  |  |  | () => op[ processedArgs.label || processedArgs._[0] || 'h']() | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  | .catch(()=>{ | 
		
	
		
			
			|  |  |  | console.log('Not Elevated'); | 
		
	
		
			
			|  |  |  | console.log('Requesting Elevated Privileges') | 
		
	
		
			
			|  |  |  | nodeShellExec('MSHTA', [`javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('node', 'elxr ${processedArgs._[0]} ${processedArgs._[1]} ${processedArgs._[2]} --runas=true', '', 'runas', 1);close();`] | 
		
	
		
			
			|  |  |  | , { | 
		
	
		
			
			|  |  |  | // inherit : true | 
		
	
		
			
			|  |  |  | // , shell: true | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
		
			
			|  |  |  | , title : `runas` | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ); | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'pull' : (label) => { | 
		
	
		
			
			|  |  |  | var env = Object.assign({}, process.env); // Shallow clone it. | 
		
	
		
			
			|  |  |  | // console.dir(env) | 
		
	
	
		
			
			|  |  | @@ -248,36 +278,12 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var isElevated; | 
		
	
		
			
			|  |  |  | try { | 
		
	
		
			
			|  |  |  | nodeShellExec( "fsutil", ["dirty", "query", "C:"], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | , title : `check privileged execution mode using fsutil dirty query C:` | 
		
	
		
			
			|  |  |  | }).then((exitcode)=>{ | 
		
	
		
			
			|  |  |  | console.log('Elevated') | 
		
	
		
			
			|  |  |  | var isElevated = true; | 
		
	
		
			
			|  |  |  | console.dir(processedArgs._[1]) | 
		
	
		
			
			|  |  |  | if(processedArgs._[1] === 'runas') elevatedRunasRepos.forEach(performPull); | 
		
	
		
			
			|  |  |  | else gitRepos.forEach(performPull); | 
		
	
		
			
			|  |  |  | }).catch(()=>{ | 
		
	
		
			
			|  |  |  | console.log('Not Elevated'); | 
		
	
		
			
			|  |  |  | gitRepos.forEach(performPull) | 
		
	
		
			
			|  |  |  | console.log('Requesting Elevated Privileges') | 
		
	
		
			
			|  |  |  | nodeShellExec('MSHTA', ["javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('node', 'elxr pull runas', '', 'runas', 1);close();"] | 
		
	
		
			
			|  |  |  | , { | 
		
	
		
			
			|  |  |  | // inherit : true | 
		
	
		
			
			|  |  |  | // , shell: true | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
		
			
			|  |  |  | , title : `runas` | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ); | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | // isElevated = true; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | catch ( e ) { | 
		
	
		
			
			|  |  |  | console.error(e) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | if(!processedArgs.runas) gitRepos.forEach(performPull) | 
		
	
		
			
			|  |  |  | return isRunningElevated().then( | 
		
	
		
			
			|  |  |  | ()=> elevatedRunasRepos.forEach(performPull)) | 
		
	
		
			
			|  |  |  | .catch( | 
		
	
		
			
			|  |  |  | () => op['runas']() | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'npmi' : ()=>{ | 
		
	
	
		
			
			|  |  | @@ -340,35 +346,62 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'use' : ()=>{ | 
		
	
		
			
			|  |  |  | try { | 
		
	
		
			
			|  |  |  | var runconfig = require('./run.js') | 
		
	
		
			
			|  |  |  | if(processedArgs._[1] && runconfig.use === processedArgs._[1]) { | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(!processedArgs.runas){ | 
		
	
		
			
			|  |  |  | try { | 
		
	
		
			
			|  |  |  | var runconfig = require('./run.js') | 
		
	
		
			
			|  |  |  | if(processedArgs._[1] && runconfig.use === processedArgs._[1]) { | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else runconfig.use = processedArgs._[1]; | 
		
	
		
			
			|  |  |  | fs.writeFileSync('./run.js', 'module.exports = ' + JSON.stringify(runconfig)) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | catch(e) { | 
		
	
		
			
			|  |  |  | runconfig = { use : processedArgs._[1] }; | 
		
	
		
			
			|  |  |  | fs.writeFileSync('./run.js', 'module.exports = ' + JSON.stringify(runconfig)) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else runconfig.use = processedArgs._[1]; | 
		
	
		
			
			|  |  |  | fs.writeFileSync('./run.js', 'module.exports = ' + JSON.stringify(runconfig)) | 
		
	
		
			
			|  |  |  | op['runas']() | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | catch(e) { | 
		
	
		
			
			|  |  |  | runconfig = { use : processedArgs._[1] }; | 
		
	
		
			
			|  |  |  | fs.writeFileSync('./run.js', 'module.exports = ' + JSON.stringify(runconfig)) | 
		
	
		
			
			|  |  |  | else { | 
		
	
		
			
			|  |  |  | var runconfig = require('../run.js') | 
		
	
		
			
			|  |  |  | console.log('runconfig.use : ' + runconfig.use) | 
		
	
		
			
			|  |  |  | var tasks = [ | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('rm', ['config'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , cwd : repo | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | , title : `rm 'package-lock.json' for ${repo}` | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('rm', ['data'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , cwd : repo | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | , title : `rm 'package-lock.json' for ${repo}` | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('mklink', ['/D', 'data', runconfig.use + '-data'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('mklink', ['/D', 'config', runconfig.use + '-config'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | any(tasks) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | var tasks = [ | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('mklink', ['/D', 'data', 'data-' + runconfig.use], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | ()=>{ | 
		
	
		
			
			|  |  |  | var p = nodeShellExec('mklink', ['/D', 'config', 'config-' + runconfig.use], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return p; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | any(tasks) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // Antibiotic stewardship program. | 
		
	
		
			
			|  |  |  | // 1st use is fine. |