@@ -9,7 +9,7 @@ var Tasq = utils.Tasq | |||
var statuslog = utils.Traq | |||
var Traq = utils.Traq | |||
Tasq.addlistener(statuslog.statuslog) | |||
fs.writeFileSync('run.log', ', ' + JSON.stringify( { m : 'Hello'} ), { 'flag': 'a+' }) | |||
// fs.writeFileSync('run.log', ', ' + JSON.stringify( { m : 'Hello'} ), { 'flag': 'a+' }) | |||
Tasq.addlistener((e)=>{ fs.writeFileSync('run.log', ', ' + JSON.stringify( e ), { 'flag': 'a+' }) }) | |||
var cli = require('./cliverse') | |||
function isWin(){ return /^win/.test(process.platform) } | |||
@@ -413,8 +413,8 @@ var getPullTask = (repodef, branch, repoowner, errHandler, elevatedBatch, regula | |||
initTask(task) | |||
if(repodef.requiresElevation) { | |||
elevatedBatch.push(shell_verse.getElevatedTaskInBatch( task )); | |||
if(elevatedBatch.length === 1) { initTask(elevatedBatch[0]) } // PB : TDOO -- Make sure first task also has run context. May need to be moved to win_verse | |||
elevatedBatch.push(shell_verse.getElevatedTask( task )); | |||
return elevatedBatch[elevatedBatch.length-1] | |||
} | |||
else { | |||
@@ -449,7 +449,7 @@ var getPullTask = (repodef, branch, repoowner, errHandler, elevatedBatch, regula | |||
initTask(task) | |||
if(repodef.requiresElevation) { | |||
elevatedBatch.push(shell_verse.getElevatedTask( task )); | |||
elevatedBatch.push(shell_verse.getElevatedTaskInBatch( task )); | |||
return elevatedBatch[elevatedBatch.length-1] | |||
} | |||
else { | |||
@@ -461,7 +461,7 @@ var getPullTask = (repodef, branch, repoowner, errHandler, elevatedBatch, regula | |||
initTask(task) | |||
if(repodef.requiresElevation) { | |||
elevatedBatch.push(shell_verse.getElevatedTask( task )); | |||
elevatedBatch.push(shell_verse.getElevatedTaskInBatch( task )); | |||
return elevatedBatch[elevatedBatch.length-1] | |||
} | |||
else { | |||
@@ -2371,8 +2371,7 @@ var elxr = { | |||
var regularpulltasks = function(){ return Promise.resolve(true) } | |||
if(def.elevated){ | |||
elevatedpulltasks = function() { | |||
// shell_verse.getElevatedTask( t1 ) | |||
elevatedpulltasks = function() { | |||
var eBatch = [] | |||
def.elevated.map((def) => getPullTask(def, null, null, null, eBatch)) | |||
return shell_verse.runElevatedBatch(eBatch).then(() => { | |||
@@ -2992,7 +2991,7 @@ var __default = ((name, options)=>{ | |||
// Common baseline repos for all chess instances. | |||
, repos : [ | |||
{ repo : 'ember-masonry-grid' /*, branch : master*/ } // Default need not be specified. | |||
{ repo : 'ember-masonry-grid' /*, branch : master*/ } // Default need not be specified. | |||
, { repo : 'bbhverse' } | |||
, { repo : 'clientverse' } | |||
, { repo : 'serververse' } | |||
@@ -4133,6 +4132,7 @@ function generateDependencies(){ | |||
l('<Br/>cmd = ' + processedArgs._[0]) | |||
processedArgs._[1] === 'use' ? l('<Br/>using = ' + processedArgs._[2]) : null; | |||
l('<Br/><Br/>') | |||
// alert(fso.GetAbsolutePathName(".")) | |||
var timer = function(){ | |||
l('.'); |
@@ -13,33 +13,38 @@ var shell_verse = { | |||
else return shell_verse.runNonElevated( taskToRun ) | |||
} | |||
, elevatedRunner( taskToRun ){ | |||
, elevatedRunner( taskToRun, inBatch ){ | |||
// PB : TODO -- Should be called only when we are in an elevated shell that was already requested from an unelevated shell with a batch of tasks. | |||
try { | |||
var __runasresult = null; | |||
return taskToRun().then((r)=>{ | |||
// PB : TODO -- Every elevation should have its own messaging file. Async writes from multiple processes are a problem here... | |||
fs.writeFileSync('run.log', ', ' + JSON.stringify( { info : taskToRun.info, success: true }), { 'flag': 'a+' }) | |||
fs.writeFileSync('run.done', 'success') // PB : TODO -- This should be done conditionally if we are running inproc. | |||
if(!inBatch) fs.writeFileSync('run.done', 'success') // PB : TODO -- This should be done conditionally if we are running inproc. | |||
return __runasresult = r; | |||
}) | |||
.catch((e) => { | |||
fs.writeFileSync('run.log', ', ' + JSON.stringify(e), { 'flag': 'a+' }) | |||
fs.writeFileSync('run.done', 'failure') | |||
if(!inBatch)fs.writeFileSync('run.done', 'failure') | |||
console.error(e) | |||
}) | |||
.finally(() => { | |||
if(__runasresult && !__runasresult.skipped) fs.unlinkSync('run.done') | |||
// if(__runasresult && !__runasresult.skipped) fs.unlinkSync('run.done') | |||
}) | |||
} | |||
catch (e) { | |||
console.error('Error Invalid command : ' + e) | |||
fs.writeFileSync('run.done', 'error') | |||
if(!inBatch) fs.writeFileSync('run.done', 'error') | |||
} | |||
finally { | |||
} | |||
} | |||
, getElevatedTask : function( taskToRun ){ return ()=>{ return shell_verse.runElevated(taskToRun) }} | |||
, getElevatedTaskInBatch : function( taskToRun ){ return ()=>{ return shell_verse.runElevatedInBatch(taskToRun) }} | |||
, runElevatedInBatch : ( taskToRun ) => { | |||
if (__isElevated) return shell_verse.elevatedRunner(taskToRun, true) | |||
else return shell_verse.requestElevation(shell_verse.elevatedRunner, taskToRun) | |||
} | |||
, runElevated : ( taskToRun ) => { | |||
// Let shell_verse decide whether to Elevate Out of Proc or In Proc | |||
@@ -63,7 +68,20 @@ var shell_verse = { | |||
// In windows we don't need to run each task. We hand over to another shell which in elevated state rebuilds the whole batch and runs. | |||
// Irrespective of the batch we just call runElevated once. | |||
if (__isElevated) { | |||
return any(batchToRun); | |||
return any(batchToRun).then((r)=>{ | |||
// PB : TODO -- Every elevation should have its own messaging file. Async writes from multiple processes are a problem here... | |||
// fs.writeFileSync('run.log', ', ' + JSON.stringify( { info : taskToRun.info, success: true }), { 'flag': 'a+' }) | |||
fs.writeFileSync('run.done', 'success') // PB : TODO -- This should be done conditionally if we are running inproc. | |||
return __runasresult = r; | |||
}) | |||
.catch((e) => { | |||
// fs.writeFileSync('run.log', ', ' + JSON.stringify(e), { 'flag': 'a+' }) | |||
fs.writeFileSync('run.done', 'failure') | |||
console.error(e) | |||
}) | |||
// .finally(() => { | |||
// if(__runasresult && !__runasresult.skipped) fs.unlinkSync('run.done') | |||
// }); | |||
} | |||
else { | |||
return this.runElevated(batchToRun[0]) |