|
|
@@ -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. |