| @@ -570,55 +570,6 @@ var __runcmd = function(label){ | |||
| } | |||
| else return Promise.resolve(true); | |||
| }, | |||
| , () => { | |||
| // Move test config from dev. | |||
| if(process.env.NODE_ENV === 'test'){ | |||
| var devcfgreponame = runconfig.use + '-config' + '-development'; | |||
| var testcfgreponame = runconfig.use + '-config' + '-test'; | |||
| var testcfgdir = path.dirname(__dirname) + '/' + testcfgreponame + '/' | |||
| var devcfgdir = path.dirname(__dirname) + '/' + devcfgreponame + '/' //eg (elxr/../elixir-config.development) | |||
| var promises = []; | |||
| promises.push( | |||
| nodeShellExec('git', ['checkout', 'test'], { | |||
| inherit : true, shell: true, | |||
| cwd : testcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${testcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| ) | |||
| promises.push( | |||
| nodeShellExec('git', ['checkout', 'master'], { | |||
| inherit : true, shell: true, | |||
| cwd : devcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${devcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| ) | |||
| Promise.all(promises).then(()=> { | |||
| globSync( '**/*.test.js', {cwd : devcfgdir}).map((filename) => { | |||
| console.log('File found : ' + devcfgdir + filename) | |||
| fs.copyFileSync(devcfgdir + filename, testcfgdir+ filename); | |||
| nodeShellExec('git', ['checkout', 'test'], { | |||
| inherit : true, shell: true, | |||
| cwd : devcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${devcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| }) | |||
| }) | |||
| } | |||
| } | |||
| ]; | |||
| runconfig.NODE_ENV = process.env.NODE_ENV = process.env.NODE_ENV || runconfig.NODE_ENV || 'development'; | |||
| if(processedArgs._[1] && runconfig.use !== processedArgs._[1]) runconfig.use = processedArgs._[1]; | |||
| @@ -630,7 +581,7 @@ var __runcmd = function(label){ | |||
| 'development' : 'master', | |||
| } | |||
| // -b fails... | |||
| // cant use git checkout -b it fails with branch already exists. | |||
| var performCheckout = (repo)=>{ | |||
| return nodeShellExec('git', ['checkout', checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | |||
| inherit : true, shell: true, | |||
| @@ -638,6 +589,25 @@ var __runcmd = function(label){ | |||
| }).catch((e)=>{ console.error(e) }) | |||
| } | |||
| var mergeSources = { | |||
| 'development' : null, | |||
| 'test' : 'master', | |||
| 'production' : 'test' | |||
| } | |||
| var exludeMergeRepos = { | |||
| 'elixir-config-development' : true, 'elixir-config-test': true, 'elixir-config-production' : true | |||
| } | |||
| var mergeSource = mergeSources[checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV] | |||
| var performMerge = (repo)=>{ | |||
| if(exludeMergeRepos[repo]) return Promise.resolve({ 'skipped' : true }) | |||
| return nodeShellExec('git', ['merge', mergeSource], { | |||
| inherit : true, shell: true, | |||
| cwd : repo | |||
| }).catch((e)=>{ console.error(e) }) | |||
| } | |||
| if(runconfig.NODE_ENV === 'development') performMerge = ()=>{} | |||
| any(tasks).then(()=>{ | |||
| if(!processedArgs.runas) return op['runas']() | |||
| @@ -667,7 +637,58 @@ var __runcmd = function(label){ | |||
| return any(tasks.concat([ | |||
| any(gitRepos.map((repo)=>performCheckout(repo))), | |||
| any(elevatedRunasRepos.map((repo)=>performCheckout(repo))) | |||
| any(elevatedRunasRepos.map((repo)=>performCheckout(repo))), | |||
| any(gitRepos.map((repo)=>performMerge(repo))), | |||
| any(elevatedRunasRepos.map((repo)=>performMerge(repo))), | |||
| , () => { | |||
| // Move test config from dev. | |||
| if(process.env.NODE_ENV === 'test'){ | |||
| var devcfgreponame = runconfig.use + '-config' + '-development'; | |||
| var testcfgreponame = runconfig.use + '-config' + '-test'; | |||
| var testcfgdir = path.dirname(__dirname) + '/' + testcfgreponame + '/' | |||
| var devcfgdir = path.dirname(__dirname) + '/' + devcfgreponame + '/' //eg (elxr/../elixir-config.development) | |||
| var promises = []; | |||
| promises.push( | |||
| nodeShellExec('git', ['checkout', 'test'], { | |||
| inherit : true, shell: true, | |||
| cwd : testcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${testcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| ) | |||
| promises.push( | |||
| nodeShellExec('git', ['checkout', 'master'], { | |||
| inherit : true, shell: true, | |||
| cwd : devcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${devcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| ) | |||
| Promise.all(promises).then(()=> { | |||
| globSync( '**/*.test.js', {cwd : devcfgdir}).map((filename) => { | |||
| console.log('File found : ' + devcfgdir + filename) | |||
| fs.copyFileSync(devcfgdir + filename, testcfgdir+ filename); | |||
| nodeShellExec('git', ['checkout', 'test'], { | |||
| inherit : true, shell: true, | |||
| cwd : devcfgdir | |||
| // , env: process.env | |||
| , runas : processedArgs.runas | |||
| , title : `git checkout ${devcfgreponame}` | |||
| }).catch((e)=>{ console.error(e) }) | |||
| }) | |||
| }) | |||
| } | |||
| } | |||
| ]) | |||
| ).then(()=>{ | |||
| fs.writeFileSync('run.done', 'success') | |||