| @@ -18,7 +18,8 @@ const cliargs = require('../elxr/cliargs'); // Use minimist... | |||
| const processedArgs = cliargs(process.argv.slice(2)); | |||
| console.dir(processedArgs) | |||
| var path = require('path') | |||
| 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. | |||
| function any(iterable, continueOnFailure) { | |||
| @@ -533,6 +534,12 @@ var __runcmd = function(label){ | |||
| kill(serverPid) | |||
| } | |||
| , 'use' : ()=>{ | |||
| // use a certain named instance. | |||
| // Eg : | |||
| // 1) elxr use elixir | |||
| // 2) elxr use cihsr | |||
| // If environment is not specified defaults to development. | |||
| // 1) NODE=test elxr use elixir | |||
| var runconfig = { NODE_ENV : process.env.NODE_ENV } | |||
| try { runconfig = Object.assign(runconfig, require('../run.js')) } catch(e) { } | |||
| @@ -569,6 +576,18 @@ var __runcmd = function(label){ | |||
| // console.log(process.env.cwd) | |||
| fs.writeFileSync('./run.js', 'module.exports = ' + JSON.stringify(runconfig)) | |||
| var checkoutMap = { | |||
| 'development' : 'master', | |||
| } | |||
| // -b fails... | |||
| var performCheckout = (repo)=>{ | |||
| return nodeShellExec('git', ['checkout', checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | |||
| inherit : true, shell: true, | |||
| cwd : repo | |||
| }).catch((e)=>{ console.error(e) }) | |||
| } | |||
| any(tasks).then(()=>{ | |||
| if(!processedArgs.runas) return op['runas']() | |||
| @@ -595,7 +614,12 @@ var __runcmd = function(label){ | |||
| ] | |||
| ) | |||
| } | |||
| return any(tasks).then(()=>{ | |||
| return any(tasks.concat([ | |||
| any(gitRepos.map((repo)=>performCheckout(repo))), | |||
| any(elevatedRunasRepos.map((repo)=>performCheckout(repo))) | |||
| ]) | |||
| ).then(()=>{ | |||
| fs.writeFileSync('run.done', 'success') | |||
| }).catch(()=>{ | |||
| fs.writeFileSync('run.done', 'error') | |||