| @@ -2312,45 +2312,44 @@ acquireElevationState().then(() => { | |||
| selectedinstance = Object.assign(detectedInstance, clioverrides); | |||
| var todo = Promise.resolve(true); | |||
| try { | |||
| chessinstances = acquirelocalinstances(selectedinstance); | |||
| var promptkeys = { | |||
| 'instanceName' : processedArgs._[1] | |||
| } | |||
| var promptkeys = { 'instanceName' : processedArgs._[1] } | |||
| var reconfirm = { | |||
| 'instanceName' : true | |||
| var reconfirm = { | |||
| 'instanceName' : selectedinstance['instanceName'] === 'chess' | |||
| } | |||
| var prompts = []; | |||
| var eachPrompt = function(k, i, a){ | |||
| // No local instances config found. We use a default initialized instance available in selectedinstance | |||
| // Confirm those that were not supplied as user choices in runtime args and proceed to reattempt. | |||
| if(promptkeys[k] && selectedinstance[k] !== promptkeys[k] || promptkeys[k] === undefined && selectedinstance[k] === undefined | |||
| || reconfirm[k]) { | |||
| prompts.push(async ()=>{ | |||
| // PB : NOTE -- Important in async cases when this needs to be in the same state as when it was invoked. | |||
| // We take a snapshot... Shallow.. !! If required deep should be used based on use case. | |||
| // If latest altered state is required we can reerence this directly. | |||
| // var asyncthis = Object.assign(this); | |||
| Object.defineProperty(selectedinstance, k, getPromptableAsyncPropDescriptor(k, choices[k], promptkeys[k] || selectedinstance[k] )); | |||
| return await selectedinstance[k] | |||
| }) | |||
| } | |||
| delete promptkeys[k] | |||
| } | |||
| try { | |||
| chessinstances = acquirelocalinstances(selectedinstance); | |||
| initinstances(chessinstances, selectedinstance) | |||
| var instanceNameChoices = new Set(Object.keys( chessinstances) ) | |||
| instanceNameChoices.delete('current_run') | |||
| instanceNameChoices.add(selectedinstance['instanceName']) | |||
| instanceNameChoices.add(promptkeys['instanceName']) | |||
| if(promptkeys['instanceName']) instanceNameChoices.add(promptkeys['instanceName']) | |||
| var choices = { | |||
| 'instanceName' : Array.from(instanceNameChoices) | |||
| , 'reposerver' : selectedinstance['reposervers'] | |||
| } | |||
| var prompts = []; | |||
| var eachPrompt = function(k, i, a){ | |||
| // No local instances config found. We use a default initialized instance available in selectedinstance | |||
| // Confirm those that were not supplied as user choices in runtime args and proceed to reattempt. | |||
| if(selectedinstance[k] !== promptkeys[k] || promptkeys[k] === undefined || reconfirm[k]) { | |||
| prompts.push(async ()=>{ | |||
| // PB : NOTE -- Important in async cases when this needs to be in the same state as when it was invoked. | |||
| // We take a snapshot... Shallow.. !! If required deep should be used based on use case. | |||
| // If latest altered state is required we can reerence this directly. | |||
| // var asyncthis = Object.assign(this); | |||
| Object.defineProperty(selectedinstance, k, getPromptableAsyncPropDescriptor(k, choices[k], promptkeys[k] || selectedinstance[k] )); | |||
| return await selectedinstance[k] | |||
| }) | |||
| } | |||
| delete promptkeys[k] | |||
| } | |||
| Object.keys(__interactve_promts).forEach(eachPrompt, __interactve_promts) | |||
| Object.keys(promptkeys).forEach(eachPrompt, promptkeys) | |||
| @@ -2359,51 +2358,20 @@ acquireElevationState().then(() => { | |||
| } | |||
| catch (e) { | |||
| console.error(e) | |||
| // Basic keys that must be prompted and confirmed if not supplied as cmd line args. | |||
| // PB: TODO --- This should be cmd specific interpretation of location parameters !!! | |||
| var promptkeys = { | |||
| 'instanceName' : processedArgs._[1] | |||
| } | |||
| var reconfirm = { | |||
| 'instanceName' : true | |||
| } | |||
| console.error(e) // Missing chessinstances is not an error... | |||
| initinstances(chessinstances, selectedinstance) | |||
| var instanceNameChoices = new Set(Object.keys( chessinstances) ) | |||
| instanceNameChoices.delete('current_run') | |||
| instanceNameChoices.add(selectedinstance['instanceName']) | |||
| instanceNameChoices.add(promptkeys['instanceName']) | |||
| if(promptkeys['instanceName']) instanceNameChoices.add(promptkeys['instanceName']) | |||
| var choices = { | |||
| 'instanceName' : Array.from(instanceNameChoices) | |||
| , 'reposerver' : selectedinstance['reposervers'] | |||
| } | |||
| var prompts = []; | |||
| var eachPrompt = function(k, i, a){ | |||
| // No local instances config found. We use a default initialized instance available in selectedinstance | |||
| // Confirm those that were not supplied as user choices in runtime args and proceed to reattempt. | |||
| if(selectedinstance[k] !== promptkeys[k] || promptkeys[k] === undefined || reconfirm[k]) { | |||
| prompts.push(async ()=>{ | |||
| // PB : NOTE -- Important in async cases when this needs to be in the same state as when it was invoked. | |||
| // We take a snapshot... Shallow.. !! If required deep should be used based on use case. | |||
| // If latest altered state is required we can reerence this directly. | |||
| // var asyncthis = Object.assign(this); | |||
| Object.defineProperty(selectedinstance, k, getPromptableAsyncPropDescriptor(k, choices[k], promptkeys[k] || selectedinstance[k] )); | |||
| return await selectedinstance[k] | |||
| }) | |||
| } | |||
| delete promptkeys[k] | |||
| } | |||
| Object.keys(__interactve_promts).forEach(eachPrompt, __interactve_promts) | |||
| Object.keys(promptkeys).forEach(eachPrompt, promptkeys) | |||