|  |  | @@ -1698,15 +1698,9 @@ var elxr = { | 
		
	
		
			
			|  |  |  | // Or a single repo ( Either Elevated or normal. ) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def = (def ? ( | 
		
	
		
			
			|  |  |  | // def.requiresElevation = true, | 
		
	
		
			
			|  |  |  | // def.repos = def.repos, | 
		
	
		
			
			|  |  |  | // def.elevatedRepos = def.elevatedRunasRepos, | 
		
	
		
			
			|  |  |  | def | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ) : false) || { | 
		
	
		
			
			|  |  |  | def = def || { | 
		
	
		
			
			|  |  |  | repos : repomanifest.repos, | 
		
	
		
			
			|  |  |  | elevatedRepos : repomanifest.elevated | 
		
	
		
			
			|  |  |  | elevated : repomanifest.elevated | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var elevatedpulltasks = null; | 
		
	
	
		
			
			|  |  | @@ -1741,20 +1735,20 @@ var elxr = { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var useGitPull = processedArgs.useGitPull || false; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(def.elevatedRepos || def.repos) { | 
		
	
		
			
			|  |  |  | if(def.elevatedRepos) def.requiresElevation = true; | 
		
	
		
			
			|  |  |  | if(def.elevated || def.repos) { | 
		
	
		
			
			|  |  |  | if(def.elevated) def.requiresElevation = true; | 
		
	
		
			
			|  |  |  | else delete def.requiresElevation; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else { | 
		
	
		
			
			|  |  |  | if(def.requiresElevation) def.elevatedRepos = [def] | 
		
	
		
			
			|  |  |  | if(def.requiresElevation) def.elevated = [def] | 
		
	
		
			
			|  |  |  | else def.repos = [def] | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | var regularpulltasks = function(){ return Promise.resolve(true) } | 
		
	
		
			
			|  |  |  | if(def.elevatedRepos){ | 
		
	
		
			
			|  |  |  | if(def.elevated){ | 
		
	
		
			
			|  |  |  | elevatedpulltasks = function() { | 
		
	
		
			
			|  |  |  | return any(def.elevatedRepos.map((def) => performPull(def.repo))).then(() => { | 
		
	
		
			
			|  |  |  | return any(def.elevated.map((def) => performPull(def.repo))).then(() => { | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | }).catch((e) => { | 
		
	
		
			
			|  |  |  | console.error(e) | 
		
	
	
		
			
			|  |  | @@ -1914,6 +1908,29 @@ We will run your choice at the next prompt. | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var mergeObjByKey = function(arrOfObjs, keyName) { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var keyedDistinct = {} | 
		
	
		
			
			|  |  |  | var distinctArrOfObjs = [] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | arrOfObjs.forEach( o => { | 
		
	
		
			
			|  |  |  | if(o) (keyedDistinct[o[keyName]] || (keyedDistinct[o[keyName]] = []) ).push(o) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | Object.keys(keyedDistinct).forEach(key => { | 
		
	
		
			
			|  |  |  | distinctArrOfObjs.push(  utils.assign( ...keyedDistinct[key] ) ) // PB : TODO -- Shallow use utils.assign | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return distinctArrOfObjs; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var cacheWriteInstanceConfig = function(chessinstances){ | 
		
	
		
			
			|  |  |  | var instanceName = chessinstances['current_run'].instanceName; | 
		
	
		
			
			|  |  |  | var node_env = chessinstances['current_run'].node_env; | 
		
	
		
			
			|  |  |  | chessinstances[instanceName][node_env].repos = mergeObjByKey(chessinstances[instanceName][node_env].repos, 'repo') ; | 
		
	
		
			
			|  |  |  | chessinstances[instanceName][node_env].elevated = mergeObjByKey(chessinstances[instanceName][node_env].elevated, 'repo') ; | 
		
	
		
			
			|  |  |  | fs.writeFileSync(instanceroot + '/chessinstances.js', 'module.exports = ' + JSON.stringify(chessinstances, null, 2) + '', { 'flag': 'w' }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var acquireConfig = function (selected, chessinstances) { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var configrepo = selected.instanceName + '-config-' + selected.node_env; | 
		
	
	
		
			
			|  |  | @@ -1926,9 +1943,11 @@ var acquireConfig = function (selected, chessinstances) { | 
		
	
		
			
			|  |  |  | chessinstances[selected.instanceName][selected.node_env] = chessinstances[selected.instanceName][selected.node_env] || {} | 
		
	
		
			
			|  |  |  | chessinstances['current_run'] = { instanceName: selected.instanceName, node_env: selected.node_env } | 
		
	
		
			
			|  |  |  | // Config from server always override merges into selection ecept for the current selection. | 
		
	
		
			
			|  |  |  | // PB : TODO -- utils.assign Array merges are non-distinct... | 
		
	
		
			
			|  |  |  | selectedinstance = utils.assign(chessinstances[selected.instanceName][selected.node_env], selected, repomanifest) | 
		
	
		
			
			|  |  |  | // chessinstances[selectedinstance.instanceName][selectedinstance.node_env] = selectedinstance; | 
		
	
		
			
			|  |  |  | fs.writeFileSync(instanceroot + '/chessinstances.js', 'module.exports = ' + JSON.stringify(chessinstances, null, 2) + '', { 'flag': 'w' }) | 
		
	
		
			
			|  |  |  | cacheWriteInstanceConfig(chessinstances) | 
		
	
		
			
			|  |  |  | selectedinstance = chessinstances[selected.instanceName][selected.node_env] | 
		
	
		
			
			|  |  |  | // PB : TODO -- We should probably write the new server config also... | 
		
	
		
			
			|  |  |  | selectedinstance.reposerver = selectedinstance.reposerver || selectedinstance.reposervers[0] // PB : TODO -- Attempt first one that is available and online... | 
		
	
		
			
			|  |  |  | ENV.NODE_ENV = selectedinstance.node_env; |