| @@ -37,6 +37,7 @@ var globSync = require('glob').sync; | |||
| var ENV = Object.assign({}, process.env); // Shallow clone it. | |||
| var getShellTask = (command, args, options) => { | |||
| options = options || {} | |||
| return () => { | |||
| var p = nodeShellExec.apply(null, [command, args, Object.assign({ | |||
| inherit: true, shell: true, env: ENV, title: `${command} ${args}` | |||
| @@ -69,9 +70,9 @@ var getTaskCheckExists = (command, options) => { | |||
| var getPullCmd = (repo) => { | |||
| // console.log(useGitPull) | |||
| var pullCmd = [gitInstallDir | |||
| var pullCmd = [gitbash | |||
| , ['-c', 'branch=`git rev-parse --abbrev-ref HEAD`;for i in `git remote`; do git pull $i $branch; done;'] | |||
| , { cwd: repo, title: 'pull all origins for ' + repo }] | |||
| , { cwd: instanceroot + '/' + repo, title: 'pull all origins for ' + repo }] | |||
| // var pullCmd = ['pullall', [], { cwd : repo }] | |||
| if (useGitPull) pullCmd = ['git', ['pull'], { | |||
| inherit: true, shell: true, | |||
| @@ -107,7 +108,8 @@ var performPull = (repo) => { | |||
| return nodeShellExec('git', ['clone', '-c', 'core.symlinks=true', defaultRepoServer + `/${defaultRepoOwner}/` + repo + '.git'], | |||
| { | |||
| inherit: true, shell: true, | |||
| env: process.env | |||
| env: process.env | |||
| , cwd : instanceroot | |||
| , runas: processedArgs.runas | |||
| }).catch((e) => { | |||
| throw e; | |||
| @@ -117,7 +119,7 @@ var performPull = (repo) => { | |||
| { | |||
| inherit: true, shell: true, | |||
| env: process.env | |||
| , cwd: repo | |||
| , cwd: instanceroot + '/' + repo | |||
| , runas: processedArgs.runas | |||
| , title: `git core.symlinks --replace-all true for ${defaultRepoServer + `/${defaultRepoOwner}/` + repo + '.git'}` | |||
| }) | |||
| @@ -192,8 +194,8 @@ var dbForLabel = function (label) { | |||
| } | |||
| // SAM : TODO Use nodeshellexec where to detect git installation dir | |||
| var gitInstallDir = "C:\\Program Files\\Git\\bin\\sh.exe" | |||
| // var gitInstallDir = "G:\\Installed\\Git\\bin\\sh.exe" | |||
| var gitbash = "C:\\Program Files\\Git\\bin\\sh.exe" | |||
| // var gitbash = "G:\\Installed\\Git\\bin\\sh.exe" | |||
| // Relevant git repos | |||
| // var repomanifest = require('../'+repomanifest.instanceName+'-config-'+ nodeenv +'/repo-manifest')() | |||
| var exludeMergeRepos = []; | |||
| @@ -408,10 +410,10 @@ var op = { | |||
| , env: process.env | |||
| }] | |||
| // PB : TODO -- Do this conditionally only... | |||
| , ['git', ['remote', 'rename', 'origin', 'githubclone'], { cwd: `${repo}` }, (err) => { | |||
| , ['git', ['remote', 'rename', 'origin', 'githubclone'], { cwd: `${instanceroot + '/' + repo}` }, (err) => { | |||
| console.log('Ignoring origin rename error : ' + err); return true; //return true to continue. | |||
| }] // PB ; Todo -- new repositories created locally will not have origin. Handle this failure. | |||
| , ['git', ['remote', 'add', 'origin', `${defaultRepoServer}/${repo}.git`], { cwd: `${repo}` }] | |||
| , ['git', ['remote', 'add', 'origin', `${defaultRepoServer}/${repo}.git`], { cwd: `${instanceroot + '/' + repo}` }] | |||
| // PB : TODO -- If threre is a gitbubclone origin | |||
| // Set the master to pull from the local repo. | |||
| ] | |||
| @@ -425,7 +427,7 @@ var op = { | |||
| } | |||
| } | |||
| sequentialTaskShellCommands.push(['git', ['push', 'origin', 'master'], { cwd: `${repo}` }]) | |||
| sequentialTaskShellCommands.push(['git', ['push', 'origin', 'master'], { cwd: `${instanceroot + '/' + repo}` }]) | |||
| // console.dir(sequentialTaskShellCommands); | |||
| var tasks = []; | |||
| @@ -448,11 +450,11 @@ var op = { | |||
| remotename = remotename || processedArgs._[1] | |||
| url = url || processedArgs._[2] | |||
| var serial_perform_git_seturl = (repo) => { | |||
| var options = { cwd: repo } | |||
| var options = { cwd: instanceroot + '/' + repo } | |||
| // console.log(repo) | |||
| if (pushable) { | |||
| return [ | |||
| ['git', ['remote', 'set-url', remotename, url + '/' + repo], { cwd: repo }] | |||
| ['git', ['remote', 'set-url', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | |||
| ] | |||
| } | |||
| else { | |||
| @@ -485,22 +487,22 @@ var op = { | |||
| url = url || processedArgs._[2] | |||
| branch = branch || processedArgs._[3] | |||
| var serial_perform_git_add = (repo) => { | |||
| var options = { cwd: repo } | |||
| var options = { cwd: instanceroot + '/' + repo } | |||
| // console.log(repo) | |||
| if (pushable) { | |||
| return [ | |||
| ['git', ['remote', 'add', remotename, url + '/' + repo], { cwd: repo }] | |||
| , ['git', ['pull', remotename, branch], { cwd: repo }] | |||
| , ['git', ['branch', `--set-upstream-to=${remotename}/${branch}`, branch], { cwd: repo }] | |||
| ['git', ['remote', 'add', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['pull', remotename, branch], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['branch', `--set-upstream-to=${remotename}/${branch}`, branch], { cwd: instanceroot + '/' + repo }] | |||
| ] | |||
| } | |||
| else { | |||
| return [ | |||
| ['git', ['remote', 'add', remotename, url + '/' + repo], { cwd: repo }] | |||
| , ['git', ['remote', `set-url`, '--push', remotename, 'no-pushing'], { cwd: repo }] | |||
| , ['git', ['pull', remotename, branch], { cwd: repo }] | |||
| , ['git', ['branch', `--set-upstream-to=${remotename}/${branch}`, branch], { cwd: repo }] | |||
| ['git', ['remote', 'add', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['remote', `set-url`, '--push', remotename, 'no-pushing'], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['pull', remotename, branch], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['branch', `--set-upstream-to=${remotename}/${branch}`, branch], { cwd: instanceroot + '/' + repo }] | |||
| ] | |||
| } | |||
| @@ -542,10 +544,10 @@ var op = { | |||
| , 'remove': (remotename) => { | |||
| remotename = remotename || processedArgs._[1] | |||
| var serial_perform_git_remove = (repo) => { | |||
| var options = { cwd: repo } | |||
| var options = { cwd: instanceroot + '/' + repo } | |||
| // console.log(repo) | |||
| return [ | |||
| ['git', ['remote', 'remove', remotename], { cwd: repo }] | |||
| ['git', ['remote', 'remove', remotename], { cwd: instanceroot + '/' + repo }] | |||
| ] | |||
| } | |||
| var x = (args) => { | |||
| @@ -586,12 +588,12 @@ var op = { | |||
| user = user || processedArgs._[1] | |||
| if (!user) throw 'User name required' | |||
| var serial_perform_init_gitea = (repo) => { | |||
| var options = { cwd: repo } | |||
| var options = { cwd: instanceroot + '/' + repo } | |||
| // console.log(repo) | |||
| return [ | |||
| ['git', ['remote', 'add', 'chess', `${defaultRepoServer}/${user}/${repo}.git`], { cwd: repo }] | |||
| , ['git', ['remote', 'set-url', '--push', 'chess', 'no-pushing'], { cwd: repo }] | |||
| , ['git', ['remote', 'set-url', 'origin', `${defaultRepoServer}/${user}/${repo}.git`], { cwd: repo }] | |||
| ['git', ['remote', 'add', 'chess', `${defaultRepoServer}/${user}/${repo}.git`], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['remote', 'set-url', '--push', 'chess', 'no-pushing'], { cwd: instanceroot + '/' + repo }] | |||
| , ['git', ['remote', 'set-url', 'origin', `${defaultRepoServer}/${user}/${repo}.git`], { cwd: instanceroot + '/' + repo }] | |||
| ] | |||
| } | |||
| var x = (args) => { | |||
| @@ -714,13 +716,18 @@ var op = { | |||
| , 'npmi': () => { | |||
| var tasks = []; | |||
| // Build fails without babel... | |||
| tasks.push(getShellTask( | |||
| 'npm',[ 'i', '-g', 'babel-cli' ] | |||
| ) ) | |||
| var npmbuildrepos = ['loopback-jsonapi-model-serializer'] | |||
| npmbuildrepos = [] | |||
| npmbuildrepos.forEach(repo => { | |||
| tasks.push(() => { | |||
| return nodeShellExec('npm', ['i --force'], { | |||
| inherit: true, shell: true | |||
| , cwd: repo | |||
| , cwd: instanceroot + '/' + repo | |||
| , env: process.env | |||
| , title: `npm i for ${repo}` | |||
| }).catch((e) => { | |||
| @@ -729,7 +736,7 @@ var op = { | |||
| console.log(`--------------------npm run build for ${repo}--------------------`) | |||
| return nodeShellExec('npm', ['run build'], { | |||
| inherit: true, shell: true | |||
| , cwd: repo | |||
| , cwd: instanceroot + '/' + repo | |||
| , env: process.env | |||
| , title: `npm run build for ${repo}` | |||
| }).then(Tasq.then).catch(Tasq.catch) | |||
| @@ -742,19 +749,28 @@ var op = { | |||
| gitRepos.push('client/server'); | |||
| gitRepos = gitRepos.concat(elevatedRunasRepos); | |||
| // gitRepos = ['bbhverse', 'serververse', 'elixir-server' | |||
| // , 'client' | |||
| // ]; | |||
| var rmtasks = [] | |||
| var repotasks = [] | |||
| gitRepos.forEach(repo => { | |||
| rmtasks.push(() => { | |||
| console.log(`--------------------rm package-lock.json for ${repo}--------------------`) | |||
| return nodeShellExec('rm', ['package-lock.json'], { | |||
| inherit: true, shell: true | |||
| , cwd: repo | |||
| , env: process.env | |||
| , title: `rm 'package-lock.json' for ${repo}` | |||
| }).catch((e) => { console.error(e) }) | |||
| }) | |||
| rmtasks.push( | |||
| // () => { | |||
| // console.log(`--------------------rm package-lock.json for ${repo}--------------------`) | |||
| // return nodeShellExec(`"${gitbash}"`, ['-c', '"rm package-lock.json"'], { | |||
| nodeShellExec('rm', ['package-lock.json'], { | |||
| inherit: true, shell: true | |||
| , cwd: instanceroot + '/' + repo | |||
| , env: process.env | |||
| , title: `rm 'package-lock.json' for ${repo}` | |||
| }) | |||
| .then(()=>{ | |||
| console.log(`--------------------rm package-lock.json for ${repo}--------------------`) | |||
| }).catch((e) => { console.error(e) }) | |||
| // } | |||
| ) | |||
| if (npmbuildrepos.indexOf(repo) < 0) { | |||
| repotasks.push( | |||
| @@ -762,7 +778,7 @@ var op = { | |||
| console.log(`--------------------npm i for ${repo}--------------------`) | |||
| var p = nodeShellExec('npm', ['i --force'], { | |||
| inherit: true, shell: true | |||
| , cwd: repo | |||
| , cwd: instanceroot + '/' + repo | |||
| , env: process.env | |||
| , title: `npm i for ${repo}` | |||
| }).then(Tasq.then).catch(Tasq.catch) | |||
| @@ -771,19 +787,35 @@ var op = { | |||
| } | |||
| }) | |||
| // repotasks.push( | |||
| // () => { | |||
| // console.log(`--------------------second time npm i for client--------------------`) | |||
| // var p = nodeShellExec('npm', ['i --force'], { | |||
| // inherit: true, shell: true | |||
| // , cwd: instanceroot + '/' + 'client' | |||
| // , env: process.env | |||
| // , title: `npm i for client` | |||
| // }).then(Tasq.then).catch(Tasq.catch) | |||
| // return p; | |||
| // }) | |||
| var bowerRepos = ['client'] | |||
| bowerRepos.forEach(repo => { | |||
| repotasks.push(() => { | |||
| var p = nodeShellExec('bower', ['install'], { | |||
| console.log(instanceroot + '/' + repo + '/node_modules/bower/bin/bower') | |||
| var p = nodeShellExec('node_modules/bower/bin/bower', ['install'], { | |||
| // var p = nodeShellExec(`"${gitbash}"`, ['-c', '"node_modules/bower/bin/bower i"'], { | |||
| inherit: true, shell: true | |||
| , cwd: repo | |||
| , cwd: instanceroot + '/' + repo | |||
| , env: process.env | |||
| , title: `bower i for ${repo}` | |||
| }).then(Tasq.then).catch(Tasq.catch) | |||
| return p; | |||
| }) | |||
| }) | |||
| // console.log('rmtasks.length : ' + rmtasks.length) | |||
| return Promise.all(rmtasks).then(() => any(repotasks)); | |||
| }).catch(e => { | |||
| @@ -804,7 +836,7 @@ var op = { | |||
| shell: true, | |||
| detached: true, | |||
| stdio: 'ignore', | |||
| cwd: 'elixir-server' | |||
| cwd: instanceroot + '/' + 'elixir-server' | |||
| , env: env | |||
| }) | |||
| @@ -839,7 +871,7 @@ var op = { | |||
| shell: true, | |||
| detached: true, | |||
| stdio: 'ignore', | |||
| cwd: 'client' | |||
| cwd: instanceroot + '/' + 'client' | |||
| , env: env | |||
| }) | |||
| // .catch(e=>console.error(e)) | |||
| @@ -930,7 +962,7 @@ var op = { | |||
| return nodeShellExec('git', ['checkout', branch || checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | |||
| // return nodeShellExec('git', ['switch', '-m', '-C', checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | |||
| // inherit : true, shell: true, | |||
| cwd: repo | |||
| cwd: repoinstanceroot + '/' + repo | |||
| // , stdio : ignore // Use when we want to silcence output completely. | |||
| , runas: processedArgs.runas | |||
| , title: `git checkout ${branch || checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV} for ${repo}` | |||
| @@ -942,7 +974,7 @@ var op = { | |||
| if (excludeCheckouts[repo]) return Promise.resolve({ 'skipped': true }) | |||
| return nodeShellExec('git', ['pull', '--all'], { | |||
| // inherit : true, shell: true, | |||
| cwd: repo | |||
| cwd: instanceroot + '/' + repo | |||
| , runas: processedArgs.runas | |||
| , title: `git pull -all for ${checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV} ${repo}` | |||
| }).catch((e) => { console.error(e); return { error: true, message: repo } }) | |||
| @@ -962,13 +994,13 @@ var op = { | |||
| if (exludeMergeRepos[repo]) return Promise.resolve({ 'skipped': true }) | |||
| return nodeShellExec('git', ['merge', mergeSource], { | |||
| inherit: true, shell: true, | |||
| cwd: repo | |||
| cwd: instanceroot + '/' + repo | |||
| , runas: processedArgs.runas | |||
| }).catch((e) => { console.error(e) }) | |||
| } | |||
| if (runconfig.NODE_ENV === 'development') performMerge = () => { return Promise.resolve(true) } | |||
| any(tasks).then(() => { | |||
| return any(tasks).then(() => { | |||
| if (!processedArgs.runas) return op['runas']() | |||
| tasks = [ | |||
| @@ -976,6 +1008,7 @@ var op = { | |||
| // Use junctions to avoid npm package issues | |||
| var p = nodeShellExec('mklink', ['/J', 'config', runconfig.use + '-config' + '-' + process.env.NODE_ENV], { | |||
| inherit: true, shell: true | |||
| , cwd : instanceroot | |||
| , env: process.env | |||
| }).catch((e) => { console.error(e) }) | |||
| return p; | |||
| @@ -987,6 +1020,7 @@ var op = { | |||
| () => { | |||
| var p = nodeShellExec('mklink', ['/J', 'data', runconfig.use + '-data'], { | |||
| inherit: true, shell: true | |||
| , cwd : instanceroot | |||
| , env: process.env | |||
| }).catch((e) => { console.error(e) }) | |||
| return p; | |||
| @@ -1372,7 +1406,7 @@ var acquireConfig = function (selected, chessinstances) { | |||
| }) | |||
| } | |||
| var launchpath = process.cwd() | |||
| var launchpath = process.cwd().replace(/\\/, '/') | |||
| var thisscriptdir = __dirname | |||
| var instanceroot = launchpath; | |||
| var detectInstance = function () { | |||
| @@ -1392,7 +1426,7 @@ var detectInstance = function () { | |||
| // It could be a standalone elxr build which may or maynot be in the proper location. | |||
| if (BUILD_VERSION.indexOf('Version: {version} - built on {date}') > -1) { | |||
| // Unbuilt therefore we are in the elxr directory. | |||
| root = path.normalize(launchpath + '../'); | |||
| root = path.normalize(launchpath + '/..'); | |||
| } | |||
| else { | |||
| // Built version. | |||
| @@ -1409,7 +1443,7 @@ var detectInstance = function () { | |||
| } | |||
| } | |||
| } | |||
| instanceroot = root; | |||
| instanceroot = root.replace(/\\/, '/'); | |||
| var __default = { | |||
| // Default is public server only. | |||