| , 'chess-server' | , '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 = [ | var productionRepos = [ | ||||
| 'elixir-config-production' | 'elixir-config-production' | ||||
| ] | ] | ||||
| dirs(perform_init_gitea) | 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) => { | , 'pull' : (label) => { | ||||
| // Usage : | // Usage : | ||||
| // elxr pull -- Defaults to run config | // elxr pull -- Defaults to run config | ||||
| 'test' : 'master', | 'test' : 'master', | ||||
| 'production' : '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) | var excludeCheckouts = Object.assign(exludeMergeRepos) | ||||
| delete excludeCheckouts[`elixir-config-${runconfig.NODE_ENV}`] | delete excludeCheckouts[`elixir-config-${runconfig.NODE_ENV}`] | ||||
| delete excludeCheckouts[`cihsr-config-${runconfig.NODE_ENV}`] | delete excludeCheckouts[`cihsr-config-${runconfig.NODE_ENV}`] |