|  |  | @@ -194,6 +194,14 @@ var elevatedRunasRepos = [ | 
		
	
		
			
			|  |  |  | , 'chess-server' | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var exludeMergeRepos = { | 
		
	
		
			
			|  |  |  | 'elixir-config-development' : true, 'elixir-config-test': true, 'elixir-config-production' : true | 
		
	
		
			
			|  |  |  | , 'elixir-data' : true | 
		
	
		
			
			|  |  |  | ,'cihsr-config-development' : true, 'cihsr-config-test': true, 'cihsr-config-production' : true | 
		
	
		
			
			|  |  |  | , 'cihsr-data' : true | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var productionRepos = [ | 
		
	
		
			
			|  |  |  | 'elixir-config-production' | 
		
	
		
			
			|  |  |  | ] | 
		
	
	
		
			
			|  |  | @@ -584,6 +592,90 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | dirs(perform_init_gitea) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'syncmaster' : (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)) | 
		
	
		
			
			|  |  |  | // nodeShellExec('cmd', ['/c', 'setup\\utility\\chess.bat', 'pull'], { | 
		
	
		
			
			|  |  |  | // // nodeShellExec('cmd', ['/c', '..\\setup\\utility\\chess.bat', 'pull'], { | 
		
	
		
			
			|  |  |  | //   stdio: ['pipe', process.stdout, process.stderr], | 
		
	
		
			
			|  |  |  | //   inherit : true, | 
		
	
		
			
			|  |  |  | //   shell: true, | 
		
	
		
			
			|  |  |  | //   cwd : path.dirname(__dirname), | 
		
	
		
			
			|  |  |  | //   env: env | 
		
	
		
			
			|  |  |  | // }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var useGitPull = processedArgs.useGitPull || false; | 
		
	
		
			
			|  |  |  | var getPullCmd = (repo)=>{ | 
		
	
		
			
			|  |  |  | // console.log(useGitPull) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var pullCmd = [ gitInstallDir | 
		
	
		
			
			|  |  |  | , ['-c', 'for i in `git remote`; do git pull $i master; done;'] | 
		
	
		
			
			|  |  |  | , { cwd : repo, title : 'pull all origins for ' + 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(exludeMergeRepos[repo]) return Promise.resolve({ 'skipped' : true }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(existsSync(repo)) { | 
		
	
		
			
			|  |  |  | console.log('pulling ' + repo) | 
		
	
		
			
			|  |  |  | return nodeShellExec.apply(null, getPullCmd(repo)).catch((e)=>{ console.error(e) }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else { | 
		
	
		
			
			|  |  |  | console.log('cloning ' + repo) | 
		
	
		
			
			|  |  |  | // PB : TODO -- detect if a clonable repo exists in currentGitAuthUser | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['clone', '-c', 'core.symlinks=true', defaultRepoServer + `/${defaultRepoOwner}/` + repo + '.git'], | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
		
			
			|  |  |  | , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | }).catch((e)=>{ console.error(e) }).then(()=>{ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return nodeShellExec('git', ['config', '--replace-all' , 'core.symlinks', true], | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | inherit : true, shell: true, | 
		
	
		
			
			|  |  |  | env: process.env | 
		
	
		
			
			|  |  |  | , cwd : repo | 
		
	
		
			
			|  |  |  | , runas : processedArgs.runas | 
		
	
		
			
			|  |  |  | , title : `git core.symlinks --replace-all true for ${defaultRepoServer + `/${defaultRepoOwner}/` + repo + '.git'}` | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(!processedArgs.runas) gitRepos.forEach(performPull) | 
		
	
		
			
			|  |  |  | return isRunningElevated().then( | 
		
	
		
			
			|  |  |  | (isElevated) => { | 
		
	
		
			
			|  |  |  | if(isElevated) { | 
		
	
		
			
			|  |  |  | any(elevatedRunasRepos.map((repo)=>performPull(repo))).then(()=>{ | 
		
	
		
			
			|  |  |  | fs.writeFileSync('run.done', 'success') | 
		
	
		
			
			|  |  |  | }).catch(()=>{ | 
		
	
		
			
			|  |  |  | fs.writeFileSync('run.done', 'error') | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else throw false; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ).catch( | 
		
	
		
			
			|  |  |  | () => { | 
		
	
		
			
			|  |  |  | op['runas']() | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | , 'pull' : (label) => { | 
		
	
		
			
			|  |  |  | // Usage : | 
		
	
		
			
			|  |  |  | // elxr pull -- Defaults to run config | 
		
	
	
		
			
			|  |  | @@ -863,12 +955,6 @@ var __runcmd = function(label){ | 
		
	
		
			
			|  |  |  | 'test' : 'master', | 
		
	
		
			
			|  |  |  | 'production' : 'master' | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | var exludeMergeRepos = { | 
		
	
		
			
			|  |  |  | 'elixir-config-development' : true, 'elixir-config-test': true, 'elixir-config-production' : true | 
		
	
		
			
			|  |  |  | , 'elixir-data' : true | 
		
	
		
			
			|  |  |  | ,'cihsr-config-development' : true, 'cihsr-config-test': true, 'cihsr-config-production' : true | 
		
	
		
			
			|  |  |  | , 'cihsr-data' : true | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | var excludeCheckouts = Object.assign(exludeMergeRepos) | 
		
	
		
			
			|  |  |  | delete excludeCheckouts[`elixir-config-${runconfig.NODE_ENV}`] | 
		
	
		
			
			|  |  |  | delete excludeCheckouts[`cihsr-config-${runconfig.NODE_ENV}`] |