|  |  | @@ -189,6 +189,36 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | var op = { | 
		
	
		
			
			|  |  |  | 'h' : ()=>{ console.log(cli + ' ' + ver + ' ' + help); return '-h' } | 
		
	
		
			
			|  |  |  | , 'undefined' : ()=>{ return op.h(); } | 
		
	
		
			
			|  |  |  | , 'reset' : ()=>{ | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Reset NPM packages semver so major versions can be updated. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | const fs = require('fs') | 
		
	
		
			
			|  |  |  | const wipeDependencies = (package) => { | 
		
	
		
			
			|  |  |  | const file  = fs.readFileSync(package + '/package.json') | 
		
	
		
			
			|  |  |  | const content = JSON.parse(file) | 
		
	
		
			
			|  |  |  | for (var devDep in content.devDependencies) { | 
		
	
		
			
			|  |  |  | if (content.devDependencies[devDep].match(/\W+\d+.\d+.\d+-?((alpha|beta|rc)?.\d+)?/g)) { | 
		
	
		
			
			|  |  |  | content.devDependencies[devDep] = '*'; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | for (var dep in content.dependencies) { | 
		
	
		
			
			|  |  |  | if (content.dependencies[dep].match(/\W+\d+.\d+.\d+-?((alpha|beta|rc)?.\d+)?/g)) { | 
		
	
		
			
			|  |  |  | content.dependencies[dep] = '*'; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | fs.writeFileSync(package + '/package.json', JSON.stringify(content)) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var repos = ['client']; | 
		
	
		
			
			|  |  |  | // repos = gitRepos; | 
		
	
		
			
			|  |  |  | repos.forEach(wipeDependencies) | 
		
	
		
			
			|  |  |  | // if (require.main === module) { | 
		
	
		
			
			|  |  |  | // } else { | 
		
	
		
			
			|  |  |  | //   module.exports = wipeDependencies | 
		
	
		
			
			|  |  |  | // } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'upgrade' : ()=>{ | 
		
	
		
			
			|  |  |  | console.log('upgrade.......') | 
		
	
		
			
			|  |  |  | var tasks = [ | 
		
	
	
		
			
			|  |  | @@ -334,7 +364,11 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | // git push origin master | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var repo = processedArgs._[1]; | 
		
	
		
			
			|  |  |  | var defaultRepoServer = '//172.16.0.27/repos' | 
		
	
		
			
			|  |  |  | var defaultRepoServer = reposervers[0] | 
		
	
		
			
			|  |  |  | var reposervers = [ | 
		
	
		
			
			|  |  |  | 'http://git.bbh' | 
		
	
		
			
			|  |  |  | , '//172.16.0.27/repos' | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var sequentialTaskShellCommands = []; | 
		
	
		
			
			|  |  |  | if(!existsSync(`Z:/${repo}.git`)){ | 
		
	
	
		
			
			|  |  | @@ -354,10 +388,13 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | , inherit : true, shell: true | 
		
	
		
			
			|  |  |  | , env: process.env | 
		
	
		
			
			|  |  |  | }] | 
		
	
		
			
			|  |  |  | // PB : TODO -- Do this conditionally only... | 
		
	
		
			
			|  |  |  | , ['git', ['remote', 'rename', 'origin', 'githubclone'], { cwd : `${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}`}] | 
		
	
		
			
			|  |  |  | // PB : TODO -- If threre is a gitbubclone origin | 
		
	
		
			
			|  |  |  | // Set the master to pull from the local repo. | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | if(!existsSync(`Z:`)){ | 
		
	
		
			
			|  |  |  | sequentialTaskShellCommands.splice(0,0, ['net', ['use', 'Z:', defaultRepoServer.replace(/\//gm,'\\')], { | 
		
	
	
		
			
			|  |  | @@ -384,6 +421,54 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | any(tasks); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'is-git-repo' : (dir)=>{ | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['-C', dir.name, 'rev-parse'], { stdio : 'ignore'}) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'init-gitea' : (user) => { | 
		
	
		
			
			|  |  |  | user = user || processedArgs._[1] | 
		
	
		
			
			|  |  |  | if(!user) throw 'User name required' | 
		
	
		
			
			|  |  |  | var serial_perform_init_gitea = (repo)=>{ | 
		
	
		
			
			|  |  |  | var options = {  cwd : repo } | 
		
	
		
			
			|  |  |  | // console.log(repo) | 
		
	
		
			
			|  |  |  | return [ | 
		
	
		
			
			|  |  |  | ['git', ['remote', 'add', 'chess', 'http://git.bbh/chess/elxr.git'], {  cwd : repo }] | 
		
	
		
			
			|  |  |  | , ['git', ['remote', 'set-url', '--push', 'chess', 'no-pushing'], {  cwd : repo }] | 
		
	
		
			
			|  |  |  | , ['git', ['remote', 'set-url', 'origin', `http://git.bbh/${user}/${repo}.git`], {  cwd : repo }] | 
		
	
		
			
			|  |  |  | ]} | 
		
	
		
			
			|  |  |  | var x = (args)=>{ | 
		
	
		
			
			|  |  |  | return ()=>{ | 
		
	
		
			
			|  |  |  | // console.log(args) | 
		
	
		
			
			|  |  |  | return nodeShellExec.apply(null, args) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | // return Promise.resolve(true) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | var perform_init_gitea = (dir)=>{ | 
		
	
		
			
			|  |  |  | op['is-git-repo'](dir).then((code)=>{ | 
		
	
		
			
			|  |  |  | // console.log(code) | 
		
	
		
			
			|  |  |  | if(code) { | 
		
	
		
			
			|  |  |  | nodeShellExec('git',['remote', 'get-url', 'chess'], { cwd : dir.name, stdio : 'ignore' }).then(()=>{ | 
		
	
		
			
			|  |  |  | console.log('skipped : ' + dir.name + ', reason : Already has remote chess ') | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | .catch((e)=>{ | 
		
	
		
			
			|  |  |  | any( serial_perform_init_gitea(dir.name).map(x) ) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | // else console.log('Skipped : Not a Git Repo : ' + dir.name) | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ | 
		
	
		
			
			|  |  |  | // console.log('Failed : ' + dir.name) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const { readdir } = require("fs").promises | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const dirs = async (perform, path) => { | 
		
	
		
			
			|  |  |  | for (const dir of await readdir(path || process.cwd(), { withFileTypes: true })) { | 
		
	
		
			
			|  |  |  | if (dir.isDirectory()) perform(dir) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | dirs(perform_init_gitea) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'pull' : (label) => { | 
		
	
		
			
			|  |  |  | // Usage : | 
		
	
		
			
			|  |  |  | // elxr pull -- Defaults to run config | 
		
	
	
		
			
			|  |  | @@ -400,20 +485,29 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | //   env: env | 
		
	
		
			
			|  |  |  | // }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var useGitPull = processedArgs.useGitPull || false; | 
		
	
		
			
			|  |  |  | var getPullCmd = (repo)=>{ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var pullCmd = ["C:\\Program Files\\Git\\bin\\sh.exe", ['-c', 'branch=`git rev-parse --abbrev-ref HEAD`;for i in `git remote`; do git pull $i $branch; done;'], { cwd : repo }] | 
		
	
		
			
			|  |  |  | // var pullCmd = ['pullall', [], { cwd : repo }] | 
		
	
		
			
			|  |  |  | if(useGitPull) pullCmd = ['git', ['pull'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | cwd : repo | 
		
	
		
			
			|  |  |  | // , env: process.env | 
		
	
		
			
			|  |  |  | , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | , title : `git pull ${repo}` | 
		
	
		
			
			|  |  |  | }] | 
		
	
		
			
			|  |  |  | return pullCmd | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var performPull = (repo) => { | 
		
	
		
			
			|  |  |  | if(existsSync(repo)) { | 
		
	
		
			
			|  |  |  | console.log('pulling ' + repo) | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['pull'], { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | cwd : repo | 
		
	
		
			
			|  |  |  | // , env: process.env | 
		
	
		
			
			|  |  |  | , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | , title : `git pull ${repo}` | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | return nodeShellExec.apply(null, getPullCmd(repo)).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else { | 
		
	
		
			
			|  |  |  | console.log('cloning ' + repo) | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['clone', '-c', 'core.symlinks=true', '//172.16.0.27/repos/' + repo + '.git'], | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['clone', '-c', 'core.symlinks=true', defaultRepoServer + '/' + repo + '.git'], | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
	
		
			
			|  |  | @@ -426,10 +520,8 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
		
			
			|  |  |  | , cwd : repo | 
		
	
		
			
			|  |  |  | , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | , title : `git core.symlinks --replace-all true for ${'//172.16.0.27/repos/' + repo + '.git'}` | 
		
	
		
			
			|  |  |  | , title : `git core.symlinks --replace-all true for ${defaultRepoServer + '/' + repo + '.git'}` | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
			|  |  | @@ -710,55 +802,51 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | .then( () => { | 
		
	
		
			
			|  |  |  | // Move test config from dev. | 
		
	
		
			
			|  |  |  | // if(process.env.NODE_ENV === 'test'){ | 
		
	
		
			
			|  |  |  | // var devcfgreponame =  runconfig.use + '-config' + '-development'; | 
		
	
		
			
			|  |  |  | // var testcfgreponame =  runconfig.use + '-config' + '-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 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) }) | 
		
	
		
			
			|  |  |  | // ) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // return Promise.all(promises).then(()=> { | 
		
	
		
			
			|  |  |  | //   globSync( '**/*.test.js', {cwd : devcfgdir}).map((filename) => { | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | //     console.log('File found : ' + devcfgdir + filename) | 
		
	
		
			
			|  |  |  | //     fs.copyFileSync(devcfgdir + filename, testcfgdir+ filename); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | //     return 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) }) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | //   }) | 
		
	
		
			
			|  |  |  | // }) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | //   return any([ | 
		
	
		
			
			|  |  |  | //       ()=>{ | 
		
	
		
			
			|  |  |  | //         return nodeShellExec('git', ['checkout', 'test'], { | 
		
	
		
			
			|  |  |  | //           inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | //           cwd : testcfgdir | 
		
	
		
			
			|  |  |  | //           // , env: process.env | 
		
	
		
			
			|  |  |  | //           , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | //           , title : `git checkout test for ${testcfgreponame}` | 
		
	
		
			
			|  |  |  | //         }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | //       } | 
		
	
		
			
			|  |  |  | //     , ()=> { | 
		
	
		
			
			|  |  |  | //         return nodeShellExec('git', ['checkout', 'master'], { | 
		
	
		
			
			|  |  |  | //           inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | //           cwd : devcfgdir | 
		
	
		
			
			|  |  |  | //           // , env: process.env | 
		
	
		
			
			|  |  |  | //           , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | //           , title : `git checkout master for ${devcfgreponame}` | 
		
	
		
			
			|  |  |  | //         }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | //       } | 
		
	
		
			
			|  |  |  | //     , ()=> { | 
		
	
		
			
			|  |  |  | //         globSync( '**/*.test.js', {cwd : devcfgdir}).map((filename) => { | 
		
	
		
			
			|  |  |  | //           console.log('File found : ' + devcfgdir + filename) | 
		
	
		
			
			|  |  |  | //           fs.copyFileSync(devcfgdir + filename, testcfgdir+ filename); | 
		
	
		
			
			|  |  |  | //         }) | 
		
	
		
			
			|  |  |  | //         return nodeShellExec('git', ['checkout', 'test'], { | 
		
	
		
			
			|  |  |  | //           inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | //           cwd : devcfgdir | 
		
	
		
			
			|  |  |  | //           // , env: process.env | 
		
	
		
			
			|  |  |  | //           , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | //           , title : `git checkout test for ${devcfgreponame}` | 
		
	
		
			
			|  |  |  | //         }).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | //       } | 
		
	
		
			
			|  |  |  | //   ]) | 
		
	
		
			
			|  |  |  | // } | 
		
	
		
			
			|  |  |  | // else{ | 
		
	
		
			
			|  |  |  | // else { | 
		
	
		
			
			|  |  |  | return Promise.resolve(true) | 
		
	
		
			
			|  |  |  | // } | 
		
	
		
			
			|  |  |  | }).then(()=>{ | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | .then(()=>{ | 
		
	
		
			
			|  |  |  | fs.writeFileSync('run.done', 'success') | 
		
	
		
			
			|  |  |  | }).catch(()=>{ | 
		
	
		
			
			|  |  |  | fs.writeFileSync('run.done', 'error') |