Skip to content

Instantly share code, notes, and snippets.

@neroze
Last active January 23, 2018 11:47
Show Gist options
  • Save neroze/5c3eeaf518b9a3965ca2432e5209d82f to your computer and use it in GitHub Desktop.
Save neroze/5c3eeaf518b9a3965ca2432e5209d82f to your computer and use it in GitHub Desktop.
CLI App chooser
var inquirer = require('inquirer');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
var shell = require('shelljs')
const webappDirs = [
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp'} && c && v' guake -r ${'Main'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/modules/document'} && c && v' guake -r ${'Document'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/modules/doctype'} && c && v' guake -r ${'Doctype'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/baseApp'} && c && v' guake -r ${'BaseApp'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/submodules/entities'} && c && v' guake -r ${'Entities'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/submodules/components'} && c && v' guake -r ${'Components'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/dragonlawWebApp/src/scripts/modules/integrations'} && c && v' guake -r ${'Integrations'}`,
`guake -n guake -e 'exit 1'`
]
const adminDirs = [
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp'} && c && v' guake -r ${'Admin Main'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp/src/submodules/document'} && c && v' guake -r ${'Document'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp/src/submodules/doctype'} && c && v' guake -r ${'Doctype'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp/src/submodules/baseApp'} && c && v' guake -r ${'BaseApp'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp/src/submodules/entities'} && c && v' guake -r ${'Entities'}`,
`guake -n guake -e 'cd ${'/home/dragonlaw/dragonApps/adminApp/src/submodules/components'} && c && v' guake -r ${'Components'}`,
`guake -n guake -e 'exit 1'`
]
const apps = {
adminapp: adminDirs,
webapp: webappDirs
}
function goToApp(app = '~') {
apps[app].forEach((val, index) => {
console.log('Exec: ', val);
shell.exec(val);
})
}
async function openmoreApp(cmd) {
const { stdout2, stderr2 } = await exec(`${app.cmd}`);
}
function selectAppPath(app) {
let action;
switch (app) {
case 'webapp':
goToApp('webapp')
break;
case 'adminapp':
goToApp('adminapp')
break;
case 'regapp':
goToApp('regapp')
break;
default :
goToApp('webapp')
}
return action
}
inquirer.prompt([
{
type: 'list',
name: 'app',
message: 'In which App are you going to work?',
choices: ['WebApp', 'AdminApp', 'RegApp', 'DTE'],
filter: function(val) {
return val.toLowerCase();
}
}
]).then(answer => {
console.log('answers', answer);
goToApp(selectAppPath(answer.app))
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment