|  |  | @@ -633,7 +633,7 @@ var op = { | 
		
	
		
			
			|  |  |  | // Reset the whole installation pertaining to this elxr folder. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'add': (remotename, url, branch) => { | 
		
	
		
			
			|  |  |  | , 'remote add': (args) => { | 
		
	
		
			
			|  |  |  | // PB : TODO -- set-upstream-to should be chosen and intentionally switched. Coz we can have multiple upstream remotes. | 
		
	
		
			
			|  |  |  | // Also each upstream remote may need to have is own branch to switch to. We therefore need a branch nomenclature | 
		
	
		
			
			|  |  |  | // That explicitly has a remote name prefix. | 
		
	
	
		
			
			|  |  | @@ -646,10 +646,20 @@ var op = { | 
		
	
		
			
			|  |  |  | // probably git merge from all remotes... and relevant branches... | 
		
	
		
			
			|  |  |  | // alias pushall='for i in `git remote`; do git push $i; done;' | 
		
	
		
			
			|  |  |  | // alias pullall='for i in `git remote`; do git pull $i; done;' | 
		
	
		
			
			|  |  |  | // args === processedArgs ? args = {} : null; | 
		
	
		
			
			|  |  |  | var __args = { | 
		
	
		
			
			|  |  |  | remotename : args.remotename|| processedArgs._[2] | 
		
	
		
			
			|  |  |  | , url : args.url || processedArgs._[3] | 
		
	
		
			
			|  |  |  | , branch : args.branch || processedArgs._[4] | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | var remotename = __args.remotename | 
		
	
		
			
			|  |  |  | var url = __args.url | 
		
	
		
			
			|  |  |  | var branch = __args.branch | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var pushable = processedArgs.pushable || false; | 
		
	
		
			
			|  |  |  | remotename = remotename || processedArgs._[1] | 
		
	
		
			
			|  |  |  | url = url || processedArgs._[2] | 
		
	
		
			
			|  |  |  | branch = branch || processedArgs._[3] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var serial_perform_git_add = (repo) => { | 
		
	
		
			
			|  |  |  | var options = { cwd: instanceroot + '/' + repo } | 
		
	
		
			
			|  |  |  | // console.log(repo) | 
		
	
	
		
			
			|  |  | @@ -685,18 +695,18 @@ var op = { | 
		
	
		
			
			|  |  |  | nodeShellExec('git', ['remote', 'get-url', remotename], { cwd: dir.name, stdio: 'ignore' }).then(() => { | 
		
	
		
			
			|  |  |  | console.log('skipped : ' + dir.name + ', reason : A remote with same name already exists.') | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | .catch((e) => { | 
		
	
		
			
			|  |  |  | any(serial_perform_git_add(dir.name).map(x)) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | .catch((e) => { | 
		
	
		
			
			|  |  |  | any(serial_perform_git_add(dir.name).map(x)) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | // else console.log('Skipped : Not a Git Repo : ' + dir.name) | 
		
	
		
			
			|  |  |  | }).catch((e) => { | 
		
	
		
			
			|  |  |  | // console.log('Failed : ' + dir.name) | 
		
	
		
			
			|  |  |  | console.log('Failed : ' + dir.name) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const { readdir } = require("fs").promises | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | dirs(perform_git_add) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'remote remove': (args) => { | 
		
	
	
		
			
			|  |  | @@ -2326,9 +2336,12 @@ acquireElevationState().then(() => { | 
		
	
		
			
			|  |  |  | // PB : TODO -- processedArgs should already be part of selected. | 
		
	
		
			
			|  |  |  | var instanceName = processedArgs._[1] = processedArgs._[1] || chessinstances.current_run.instanceName || selected.instanceName; | 
		
	
		
			
			|  |  |  | var node_env = processedArgs.node_env = processedArgs.node_env || chessinstances.current_run.node_env || selected.node_env; | 
		
	
		
			
			|  |  |  | chessinstances[instanceName] = chessinstances[instanceName] || {} | 
		
	
		
			
			|  |  |  | chessinstances[instanceName][node_env] = chessinstances[instanceName][node_env] || selected; | 
		
	
		
			
			|  |  |  | chessinstances['current_run'] = chessinstances[instanceName][selected.node_env] ? | 
		
	
		
			
			|  |  |  | { instanceName: instanceName, node_env: node_env } : chessinstances['current_run'] | 
		
	
		
			
			|  |  |  | // chessinstances[chessinstances.current_run.instanceName] = chessinstances[chessinstances.current_run.instanceName] || {} | 
		
	
		
			
			|  |  |  | { instanceName: instanceName, node_env: node_env } : (chessinstances['current_run'] || { instanceName: instanceName, node_env: node_env }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // chessinstances[chessinstances.current_run.instanceName] = chessinstances[chessinstances.current_run.instanceName] || {} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(path.normalize(selected.root) !== path.normalize(chessinstances[instanceName][node_env].root)) { | 
		
	
		
			
			|  |  |  | throw "Mismatched chessinstances config found " + chessinstances[instanceName][node_env].root + ' does not match ' + selected.root |