|
|
@@ -22,7 +22,10 @@ var globSync = require('glob').sync; |
|
|
|
var path = require('path'); |
|
|
|
const { isMaster } = require('cluster'); |
|
|
|
// Serialize a set of functions that will execute to return a promises one after the other. |
|
|
|
// Will stop when any one fails. |
|
|
|
// Will stop when any one fails unless continueOnFailure is true. |
|
|
|
// All tasks in iterables can be functions or promises. |
|
|
|
// promises as usual can return other promises or resolve to either truthy or falsy values. |
|
|
|
// functions must return a promise |
|
|
|
function any(iterable, continueOnFailure) { |
|
|
|
return iterable.reduce( |
|
|
|
(p, fn, i ,a) => { |
|
|
@@ -37,53 +40,41 @@ function any(iterable, continueOnFailure) { |
|
|
|
|
|
|
|
// console.log('Then --pVal = ' + pVal + ' bContinue = ' + continueOnFailure ); console.log(p); |
|
|
|
if(!pVal && !continueOnFailure) { |
|
|
|
console.error("E : pVal :" + pVal); |
|
|
|
// i==0 ? null : console.error("E :1 a[i-1] " + a[i-1]); |
|
|
|
// a.map((i)=>console.error(i.toString())); |
|
|
|
console.error('debugData 3 -------------------'); |
|
|
|
// console.error(debugData); |
|
|
|
console.error('debugData 3 -------------------'); |
|
|
|
console.error(`E1 : i = ${i} : pVal :` + pVal); |
|
|
|
console.error('debugData 2 -------------------'); |
|
|
|
|
|
|
|
console.log("Cancelling remaining..."); |
|
|
|
throw 'Failed in reduce 1 ' |
|
|
|
return false; |
|
|
|
} |
|
|
|
// console.log('calling fn : '+ fn); |
|
|
|
if(!fn && !continueOnFailure) { console.error('Error : No task specified.'); throw false;} |
|
|
|
else if(!fn) return false; |
|
|
|
return (Promise.resolve(fn) === fn ) ? fn : fn() ; |
|
|
|
}) |
|
|
|
} |
|
|
|
else { |
|
|
|
|
|
|
|
// We will stop on null resolved values on any one task unless continueOnFailure is true. |
|
|
|
// console.log('Then --pVal = ' + pVal + ' bContinue = ' + continueOnFailure ); console.log(p); |
|
|
|
if(!pVal && !continueOnFailure) { |
|
|
|
console.error("E : pVal :" + pVal); |
|
|
|
// i==0 ? null : console.error("E :1 a[i-1] " + a[i-1]); |
|
|
|
// a.map((i)=>console.error(i.toString())); |
|
|
|
console.error('debugData 3 -------------------'); |
|
|
|
// console.error(debugData); |
|
|
|
console.error('debugData 3 -------------------'); |
|
|
|
console.error(`E2 : i = ${i} : pVal :` + pVal); |
|
|
|
console.error('debugData 2 -------------------'); |
|
|
|
|
|
|
|
console.log("Cancelling remaining..."); |
|
|
|
throw 'Failed in reduce 1 ' |
|
|
|
return false; |
|
|
|
throw 'Failed in reduce 2 ' |
|
|
|
} |
|
|
|
// console.log('calling fn : '+ fn); |
|
|
|
if(!fn && !continueOnFailure) { console.error('Error : No task specified.'); throw false;} |
|
|
|
else if(!fn) return false; |
|
|
|
return (Promise.resolve(fn) === fn ) ? fn : fn() ; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}).catch((error) => { |
|
|
|
console.error("E : " + error); |
|
|
|
console.error(`E3 : i = ${i} `); |
|
|
|
fn ? console.error("Fn : " + fn.toString()) : null; |
|
|
|
// i==0 ? null : console.error("E :2 a[i-1] " + a[i-1]); |
|
|
|
// a.map((i)=>console.error(i.toString())); |
|
|
|
console.error('debugData 4-------------------------'); |
|
|
|
// console.error(debugData); |
|
|
|
console.error('debugData 4-------------------------'); |
|
|
|
|
|
|
|
throw 'Failed in reduce 2 ' |
|
|
|
return false; |
|
|
|
console.error('debugData 3-------------------------'); |
|
|
|
|
|
|
|
throw 'Failed in reduce 3 ' |
|
|
|
}) |
|
|
|
} |
|
|
|
else if(!p) { |
|
|
@@ -376,6 +367,9 @@ var __runcmd = function(label){ |
|
|
|
|
|
|
|
} |
|
|
|
, 'pull' : (label) => { |
|
|
|
// Usage : |
|
|
|
// elxr pull -- Defaults to run config |
|
|
|
|
|
|
|
var env = Object.assign({}, process.env); // Shallow clone it. |
|
|
|
// console.dir(env) |
|
|
|
console.log('Running exlr pull : ' + path.dirname(__dirname)) |
|
|
@@ -586,6 +580,7 @@ var __runcmd = function(label){ |
|
|
|
return nodeShellExec('git', ['checkout', checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { |
|
|
|
inherit : true, shell: true, |
|
|
|
cwd : repo |
|
|
|
, runas : processedArgs.runas |
|
|
|
}).catch((e)=>{ console.error(e) }) |
|
|
|
} |
|
|
|
|
|
|
@@ -604,9 +599,10 @@ var __runcmd = function(label){ |
|
|
|
return nodeShellExec('git', ['merge', mergeSource], { |
|
|
|
inherit : true, shell: true, |
|
|
|
cwd : repo |
|
|
|
, runas : processedArgs.runas |
|
|
|
}).catch((e)=>{ console.error(e) }) |
|
|
|
} |
|
|
|
if(runconfig.NODE_ENV === 'development') performMerge = ()=>{} |
|
|
|
if(runconfig.NODE_ENV === 'development') performMerge = ()=>{ return Promise.resolve(true) } |
|
|
|
|
|
|
|
any(tasks).then(()=>{ |
|
|
|
if(!processedArgs.runas) return op['runas']() |
|
|
@@ -638,8 +634,8 @@ var __runcmd = function(label){ |
|
|
|
return any(tasks.concat([ |
|
|
|
any(gitRepos.map((repo)=>performCheckout(repo))), |
|
|
|
any(elevatedRunasRepos.map((repo)=>performCheckout(repo))), |
|
|
|
any(gitRepos.map((repo)=>performMerge(repo))), |
|
|
|
any(elevatedRunasRepos.map((repo)=>performMerge(repo))), |
|
|
|
any(gitRepos.map((repo)=>performMerge(repo))).catch(err=>{ console.error('error in performMerge ' + err)}) , |
|
|
|
any(elevatedRunasRepos.map((repo)=>performMerge(repo))).catch(err=>{ console.error('error in performMerge ' + err)}) |
|
|
|
, () => { |
|
|
|
// Move test config from dev. |
|
|
|
if(process.env.NODE_ENV === 'test'){ |
|
|
@@ -670,7 +666,7 @@ var __runcmd = function(label){ |
|
|
|
}).catch((e)=>{ console.error(e) }) |
|
|
|
) |
|
|
|
|
|
|
|
Promise.all(promises).then(()=> { |
|
|
|
return Promise.all(promises).then(()=> { |
|
|
|
globSync( '**/*.test.js', {cwd : devcfgdir}).map((filename) => { |
|
|
|
|
|
|
|
console.log('File found : ' + devcfgdir + filename) |