|
|
|
|
|
|
|
|
, '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}`] |