Browse Source

Merge branch 'master' of http://git.bbh/chess/elxr

master
chess 3 years ago
parent
commit
6bd5d16e53
2 changed files with 51 additions and 54 deletions
  1. 10
    4
      cliverse.js
  2. 41
    50
      index.js

+ 10
- 4
cliverse.js View File

var prompt = function(choices, label, defaultchoice){ var prompt = function(choices, label, defaultchoice){
var choices = choices || []; var choices = choices || [];
return this.prompter.ask( return this.prompter.ask(
`${label} \n ` + Object.keys(choices).map(choice => { return ` ${(+choice) + 1}) ${choices[choice]} `}).join('\n') + `\n default ( <= ${ defaultchoice || choices[0]} ) : ` `${label} \n` + Object.keys(choices).map(choice => { return ` ${(+choice) + 1}) ${choices[choice]} `}).join('\n') + `\n default ( <= ${ defaultchoice || choices[0]} ) : `
).then(choice => { ).then(choice => {
// propName = promptable.interpret(propValue)
if(!choice) return defaultchoice || choices[0]; if(!choice) return defaultchoice || choices[0];
if(choice && isNaN(+choice)) return choice; if(choice && isNaN(+choice)) return choice;
return choices[(+choice) - 1]; return choices[(+choice) - 1];
const clii = readline.createInterface({ input: process.stdin, output: process.stdout }); const clii = readline.createInterface({ input: process.stdin, output: process.stdout });
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
clii.question(q, (answer)=>{ clii.question(q, (answer)=>{
clii.close(); try {
console.log("resolve is being called"); clii.close();
resolve(answer) console.log("readline.createInterface closed");
resolve(answer)
}
catch(e) {
reject(e)
}
}) })
}) })
} }

+ 41
- 50
index.js View File



} }


var __interactve_promts = function( selectedinstance ){ var __interactve_promts = function( target ){


return { return {
runchoice : { runchoice : {
, choices : [] , choices : []
, defaultchoice : 'c' , defaultchoice : 'c'
, interpret : function(choice){ , interpret : function(choice){
var imap = { var interpret_map = {
d : function(){ d : function(){
processedArgs._[0] = 'i' processedArgs._[0] = 'i'
selectedinstance.instanceName = processedArgs._[1] = processedArgs._[1] || 'chess' target.instanceName = processedArgs._[1] = processedArgs._[1] || 'chess'
selectedinstance.node_env = processedArgs.node_env = (process.env.NODE_ENV && process.env.NODE_ENV.trim()) || processedArgs.node_env || 'development' target.node_env = processedArgs.node_env = (process.env.NODE_ENV && process.env.NODE_ENV.trim()) || processedArgs.node_env || 'development'
selectedinstance.reposerver = 'https://git.bbh.org.in' target.reposerver = 'https://git.bbh.org.in'
} }
, n : function() { processedArgs._[0] = 'i' } , n : function() { processedArgs._[0] = 'i' }
, i : function() { processedArgs._[0] = 'i' } , i : function() { processedArgs._[0] = 'i' }
, c : function() { cli.prompter.ask(`Enter cmd : , c : async function() {
p) pull Object.defineProperty(this, 'cmd', getPromptableAsyncPropDescriptor('cmd', {
Default <= p label : `Enter cmd :
: `).then(function (cmd) { p) pull
if (!cmd || cmd === 'p') { Default <= p
processedArgs._[0] = 'pull' : `
} , defaultchoice : 'pull'
else processedArgs._[0] = cmd
return cmd;
})
} }
));

var cmd = await target['cmd'];
if (!cmd || cmd === 'p') { target['cmd'] = processedArgs._[0] = 'pull' }
else target['cmd'] = processedArgs._[0] = cmd
return cmd;
}
, h : function() { console.log(elxr.help()); process.exit() } // PB : TODO -- Why do we need log. , h : function() { console.log(elxr.help()); process.exit() } // PB : TODO -- Why do we need log.
, q : function() { process.exit() } , q : function() { process.exit() }
} }
if(!choice) return imap['c'] var __interpreter = interpret_map['c']
// if(!choice) return interpret_map['c']() // This should not happen prompter should always give us a default choice.
if(interpret_map[choice]) __interpreter = interpret_map[choice];
return imap[choice] ? imap[choice]() : imap['c']; return __interpreter.call(target)
} }
} }
, instanceName : { label : `Enter Instance Name ( <= ${selectedinstance.instanceName} ) : `, choices : [], defaultchoice : 'chess'} , instanceName : { label : `Enter Instance Name ( <= ${target.instanceName || 'chess'} ) : `, choices : [], defaultchoice : 'chess'}
, instanceType : { label : `Enter Instance Type ( <= ${selectedinstance.instanceType} ) : `, choices : [], defaultchoice : 'development'} , instanceType : { label : `Enter Instance Type ( <= ${target.instanceType || 'development'} ) : `, choices : [], defaultchoice : 'development'}
, reposerver : { label : `Enter Instance Name ( <= ${selectedinstance.reposerver} ) : `, choices : [], defaultchoice : 'https://git.bbh.org.in'} , reposerver : { label : `Enter Instance Name ( <= ${target.reposerver || 'https://git.bbh.org.in'} ) : `, choices : [], defaultchoice : 'https://git.bbh.org.in'}
// get reposerver(){
// return cli.prompt(this.reposervers, 'git default repo').then(reposerver => {
// Object.defineProperty(this, 'reposerver', {
// value: reposerver,
// writable: false,
// configurable : true,
// enumerable : true
// });
// return reposerver
// })
// }
// , set reposerver(reposerver){
// Object.defineProperty(this, 'reposerver', {
// value: reposerver,
// writable: false,
// configurable : true,
// enumerable : true
// });
// return reposerver
// }
} }
} }


return { return {
get (){ get (){
return cli.prompt( promptable.choices, promptable.label, promptable.defaultchoice ).then(propValue => { return cli.prompt( promptable.choices, promptable.label, promptable.defaultchoice ).then(propValue => {
propName = promptable.interpret(propValue) if(promptable.interpret){
Object.defineProperty(this, propName, { return propName = promptable.interpret(propValue).then(
value: propValue, ()=>{
writable: false, Object.defineProperty(this, propName, {
configurable : true, value: propValue,
enumerable : true writable: true,
}); configurable : true,
return propValue enumerable : true
});
return propValue
}
)
}
else return propValue
}) })
} }
// , set (propValue){ // , set (propValue){
// Object.defineProperty(this, propName, { // Object.defineProperty(this, propName, {
// value: propValue, // value: propValue,
// writable: false, // writable: true, // PB : TODO -- Use this to fix value permanently until run is over.
// configurable : true, // configurable : true,
// enumerable : true // enumerable : true
// }) // })

Loading…
Cancel
Save