diff --git a/app-cli/built/commands/captainduckduck.js b/app-cli/built/commands/captainduckduck.js index 5808263..93b7873 100755 --- a/app-cli/built/commands/captainduckduck.js +++ b/app-cli/built/commands/captainduckduck.js @@ -8,10 +8,10 @@ const StdOutUtil_1 = require("../utils/StdOutUtil"); const program = require("commander"); // Command actions const login_1 = require("./login"); +const list_1 = require("./list"); +const logout_1 = require("./logout"); // import serversetup = require('./serversetup'); -// import list = require('./list'); // import deploy = require('./deploy'); -// import logout = require('./logout'); // Setup program.version(packagejson.version).description(packagejson.description); // Commands @@ -21,18 +21,18 @@ program .action(() => { login_1.default(); }); +program.command('list').alias('ls').description('List all Captain machines currently logged in.').action(() => { + list_1.default(); +}); +program.command('logout').description('Logout from a specific Captain machine.').action(() => { + logout_1.default(); +}); // program // .command('serversetup') // .description('Performs necessary actions and prepares your Captain server.') // .action(() => { // serversetup(); // }); -// program.command('logout').description('Logout from a specific Captain machine.').action(() => { -// logout(); -// }); -// program.command('list').alias('ls').description('List all Captain machines currently logged in.').action(() => { -// list(); -// }); // program // .command('deploy') // .description( diff --git a/app-cli/built/commands/captainduckduck.js.map b/app-cli/built/commands/captainduckduck.js.map index 6ace441..0573891 100755 --- a/app-cli/built/commands/captainduckduck.js.map +++ b/app-cli/built/commands/captainduckduck.js.map @@ -1 +1 @@ -{"version":3,"file":"captainduckduck.js","sourceRoot":"","sources":["../../src/commands/captainduckduck.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAClD,kDAAkD;AAClD,cAAc,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,oDAA6C;AAC7C,qCAAqC;AAErC,kBAAkB;AAClB,mCAA4B;AAC5B,iDAAiD;AACjD,mCAAmC;AACnC,uCAAuC;AACvC,uCAAuC;AAEvC,QAAQ;AACR,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAE1E,WAAW;AAEX,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+FAA+F,CAAC;KAC5G,MAAM,CAAC,GAAG,EAAE;IACZ,eAAK,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEJ,UAAU;AACV,2BAA2B;AAC3B,gFAAgF;AAChF,mBAAmB;AACnB,mBAAmB;AACnB,OAAO;AAEP,kGAAkG;AAClG,aAAa;AACb,MAAM;AAEN,mHAAmH;AACnH,WAAW;AACX,MAAM;AAEN,UAAU;AACV,sBAAsB;AACtB,iBAAiB;AACjB,4HAA4H;AAC5H,KAAK;AACL,mGAAmG;AACnG,wDAAwD;AACxD,sDAAsD;AACtD,yFAAyF;AACzF,gFAAgF;AAChF,kFAAkF;AAClF,4FAA4F;AAC5F,+BAA+B;AAC/B,qBAAqB;AACrB,OAAO;AAEP,4BAA4B;AAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;IAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7C,oBAAU,CAAC,UAAU,CAAC,sBAAsB,aAAa,gDAAgD,EAAE,IAAI,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"captainduckduck.js","sourceRoot":"","sources":["../../src/commands/captainduckduck.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAClD,kDAAkD;AAClD,cAAc,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,oDAA6C;AAC7C,qCAAqC;AAErC,kBAAkB;AAClB,mCAA4B;AAC5B,iCAA0B;AAC1B,qCAA8B;AAC9B,iDAAiD;AACjD,uCAAuC;AAEvC,QAAQ;AACR,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAE1E,WAAW;AAEX,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+FAA+F,CAAC;KAC5G,MAAM,CAAC,GAAG,EAAE;IACZ,eAAK,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEJ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IAC7G,cAAI,EAAE,CAAC;AACR,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IAC5F,gBAAM,EAAE,CAAC;AACV,CAAC,CAAC,CAAC;AAEH,UAAU;AACV,2BAA2B;AAC3B,gFAAgF;AAChF,mBAAmB;AACnB,mBAAmB;AACnB,OAAO;AAEP,UAAU;AACV,sBAAsB;AACtB,iBAAiB;AACjB,4HAA4H;AAC5H,KAAK;AACL,mGAAmG;AACnG,wDAAwD;AACxD,sDAAsD;AACtD,yFAAyF;AACzF,gFAAgF;AAChF,kFAAkF;AAClF,4FAA4F;AAC5F,+BAA+B;AAC/B,qBAAqB;AACrB,OAAO;AAEP,4BAA4B;AAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;IAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7C,oBAAU,CAAC,UAAU,CAAC,sBAAsB,aAAa,gDAAgD,EAAE,IAAI,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/app-cli/built/commands/list.js b/app-cli/built/commands/list.js new file mode 100755 index 0000000..cd23c01 --- /dev/null +++ b/app-cli/built/commands/list.js @@ -0,0 +1,18 @@ +#!/usr/bin/env node +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const chalk_1 = require("chalk"); +const StdOutUtil_1 = require("../utils/StdOutUtil"); +const StorageHelper_1 = require("../utils/StorageHelper"); +function _displayMachine(machine) { + console.log('>> ' + chalk_1.default.greenBright(machine.name) + ' at ' + chalk_1.default.cyan(machine.baseUrl)); +} +function list() { + StdOutUtil_1.default.printMessage('\nLogged in Captain Machines:\n'); + StorageHelper_1.default.get().getMachines().map((machine) => { + _displayMachine(machine); + }); + StdOutUtil_1.default.printMessage(''); +} +exports.default = list; +//# sourceMappingURL=list.js.map \ No newline at end of file diff --git a/app-cli/built/commands/list.js.map b/app-cli/built/commands/list.js.map new file mode 100755 index 0000000..244b33a --- /dev/null +++ b/app-cli/built/commands/list.js.map @@ -0,0 +1 @@ +{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;AAEA,iCAA0B;AAC1B,oDAA6C;AAC7C,0DAAmD;AAGnD,SAAS,eAAe,CAAC,OAAiB;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,eAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,IAAI;IACZ,oBAAU,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;IAE3D,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACjD,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,oBAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,kBAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/app-cli/built/commands/login.js b/app-cli/built/commands/login.js index d0e21a2..c11874f 100755 --- a/app-cli/built/commands/login.js +++ b/app-cli/built/commands/login.js @@ -120,7 +120,7 @@ function login() { baseUrl, name: captainName }).getAuthToken(captainPassword); - StdOutUtil_1.default.printGreenMessage(`Logged in successfully to ${baseUrl}`); + StdOutUtil_1.default.printGreenMessage(`\nLogged in successfully to ${baseUrl}`); StdOutUtil_1.default.printGreenMessage(`Authorization token is now saved as ${captainName} \n`); } catch (error) { diff --git a/app-cli/built/commands/login.js.map b/app-cli/built/commands/login.js.map index 3af487b..cad383c 100755 --- a/app-cli/built/commands/login.js.map +++ b/app-cli/built/commands/login.js.map @@ -1 +1 @@ -{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,qCAAqC;AACrC,oDAA6C;AAC7C,0DAAmD;AACnD,kDAA2C;AAC3C,0CAAmC;AACnC,kDAA2C;AAE3C,wDAAiD;AAEjD,MAAM,aAAa,GAAG,mBAAS,CAAC,aAAa,CAAC;AAC9C,MAAM,UAAU,GAAG,eAAK,CAAC,UAAU,CAAC;AAEpC,iDAAiD;AACjD,mFAAmF;AACnF,2DAA2D;AAC3D,+CAA+C;AAE/C,+BAA+B;AAC/B,kCAAkC;AAClC,wDAAwD;AAExD,8EAA8E;AAE9E,uBAAuB;AACvB,MAAM;AACN,uBAAuB;AACvB,8BAA8B;AAC9B,2DAA2D;AAC3D,oCAAoC;AACpC,mCAAmC;AACnC,oBAAoB;AACpB,QAAQ;AAER,0DAA0D;AAC1D,OAAO;AACP,MAAM;AACN,MAAM;AACN,2DAA2D;AAC3D,mDAAmD;AACnD,oEAAoE;AACpE,sCAAsC;AACtC,gCAAgC;AAEhC,gCAAgC;AAEhC,uDAAuD;AACvD,yDAAyD;AAEzD,gBAAgB;AAChB,IAAI;AAEJ,SAAe,KAAK;;QACnB,oBAAU,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAG;YACjB;gBACC,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,sFAAsF;gBAC/F,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC3B,IAAI,KAAK,KAAK,aAAa,EAAE;wBAC5B,OAAO,mBAAmB,CAAC;qBAC3B;oBAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;wBAAE,OAAO,0BAA0B,GAAG,KAAK,CAAC;oBAElE,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBACjD,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE;4BACtD,OAAO,GAAG,KAAK,qBAAqB,OAAO,CAAC,IAAI,yGAAyG,CAAC;yBAC1J;oBACF,CAAC,CAAC,CAAC;oBAEH,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;wBAC1B,OAAO,IAAI,CAAC;qBACZ;oBAED,OAAO,+BAA+B,CAAC;gBACxC,CAAC;aACD;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,8CAA8C;gBACvD,OAAO,EAAE,IAAI;aACb;YACD;gBACC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,sBAAsB;gBAC/B,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;wBAC1B,OAAO,IAAI,CAAC;qBACZ;oBAED,OAAO,6BAA6B,CAAC;gBACtC,CAAC;aACD;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,mBAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE;gBACjD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC3B,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBACjD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;4BAC3B,OAAO,GAAG,KAAK,uHAAuH,CAAC;yBACvI;oBACF,CAAC,CAAC,CAAC;oBAEH,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;wBAC/B,OAAO,IAAI,CAAC;qBACZ;oBAED,OAAO,8BAA8B,CAAC;gBACvC,CAAC;aACD;SACD,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAA4B,CAAC;QAC9E,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACpF,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAE7D,IAAI;YACH,MAAM,aAAa,GAAG,MAAM,uBAAa,CAAC,GAAG,CAAC;gBAC7C,SAAS,EAAE,EAAE;gBACb,OAAO;gBACP,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAEjC,oBAAU,CAAC,iBAAiB,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YACvE,oBAAU,CAAC,iBAAiB,CAAC,uCAAuC,WAAW,KAAK,CAAC,CAAC;SACtF;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAE3D,oBAAU,CAAC,UAAU,CAAC,wCAAwC,WAAW,OAAO,YAAY,EAAE,CAAC,CAAC;SAChG;IACF,CAAC;CAAA;AAED,kBAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/app-cli/built/commands/logout.js b/app-cli/built/commands/logout.js new file mode 100755 index 0000000..67e1000 --- /dev/null +++ b/app-cli/built/commands/logout.js @@ -0,0 +1,47 @@ +#!/usr/bin/env node +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const inquirer = require("inquirer"); +const StdOutUtil_1 = require("../utils/StdOutUtil"); +const CliHelper_1 = require("../utils/CliHelper"); +function generateQuestions() { + const listOfMachines = CliHelper_1.default.get().getMachinesAsOptions(); + return [ + { + type: 'list', + name: 'captainNameToLogout', + message: 'Select the Captain Machine you want to logout from:', + choices: listOfMachines + }, + { + type: 'confirm', + name: 'confirmedToLogout', + message: 'Are you sure you want to logout from this Captain machine?', + default: false, + when: (answers) => answers.captainNameToLogout + } + ]; +} +function logout() { + return __awaiter(this, void 0, void 0, function* () { + const questions = generateQuestions(); + StdOutUtil_1.default.printMessage('Logout from a Captain Machine and clear auth info'); + const answers = yield inquirer.prompt(questions); + const { captainNameToLogout, confirmedToLogout } = answers; + if (!captainNameToLogout || !confirmedToLogout) { + StdOutUtil_1.default.printMessage('\nOperation cancelled by the user...\n'); + return; + } + CliHelper_1.default.get().logoutMachine(captainNameToLogout); + }); +} +exports.default = logout; +//# sourceMappingURL=logout.js.map \ No newline at end of file diff --git a/app-cli/built/commands/logout.js.map b/app-cli/built/commands/logout.js.map new file mode 100755 index 0000000..68707c5 --- /dev/null +++ b/app-cli/built/commands/logout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,qCAAqC;AACrC,oDAA6C;AAC7C,kDAA2C;AAE3C,SAAS,iBAAiB;IACzB,MAAM,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAE9D,OAAO;QACN;YACC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,qDAAqD;YAC9D,OAAO,EAAE,cAAc;SACvB;QACD;YACC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,4DAA4D;YACrE,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB;SACnD;KACD,CAAC;AACH,CAAC;AAED,SAAe,MAAM;;QACpB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QAEtC,oBAAU,CAAC,YAAY,CAAC,mDAAmD,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAE3D,IAAI,CAAC,mBAAmB,IAAI,CAAC,iBAAiB,EAAE;YAC/C,oBAAU,CAAC,YAAY,CAAC,wCAAwC,CAAC,CAAC;YAClE,OAAO;SACP;QAED,mBAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;CAAA;AAED,kBAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/app-cli/built/utils/CliHelper.js b/app-cli/built/utils/CliHelper.js index e0269e7..0ba307a 100755 --- a/app-cli/built/utils/CliHelper.js +++ b/app-cli/built/utils/CliHelper.js @@ -1,12 +1,35 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const StorageHelper_1 = require("./StorageHelper"); +const StdOutUtil_1 = require("./StdOutUtil"); class CliHelper { static get() { if (!CliHelper.instance) CliHelper.instance = new CliHelper(); return CliHelper.instance; } + getMachinesAsOptions() { + const machines = StorageHelper_1.default.get().getMachines(); + const firstItemInOption = [ + { + name: '-- CANCEL --', + value: '', + short: '' + } + ]; + const listOfMachines = machines.map((machine) => { + return { + name: `${machine.name} at ${machine.baseUrl}`, + value: `${machine.name}`, + short: `${machine.name} at ${machine.baseUrl}` + }; + }); + return [...firstItemInOption, ...listOfMachines]; + } + logoutMachine(machineName) { + const removedMachine = StorageHelper_1.default.get().removeMachine(machineName); + StdOutUtil_1.default.printMessage(`You are now logged out from ${removedMachine.name} at ${removedMachine.baseUrl}...\n`); + } findDefaultCaptainName() { let currentSuffix = StorageHelper_1.default.get().getMachines().length + 1; const self = this; diff --git a/app-cli/built/utils/CliHelper.js.map b/app-cli/built/utils/CliHelper.js.map index 8a8a684..ed55c3d 100755 --- a/app-cli/built/utils/CliHelper.js.map +++ b/app-cli/built/utils/CliHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"CliHelper.js","sourceRoot":"","sources":["../../src/utils/CliHelper.ts"],"names":[],"mappings":";;AAAA,mDAA4C;AAG5C,MAAqB,SAAS;IAG7B,MAAM,CAAC,GAAG;QACT,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,sBAAsB;QACrB,IAAI,aAAa,GAAG,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YAC1C,aAAa,EAAE,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,MAAc;QAChC,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEzD,OAAO,WAAW,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,YAAoB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAiB,EAAE,EAAE;YAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;gBAC3D,KAAK,GAAG,KAAK,CAAC;aACd;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AApCD,4BAoCC"} \ No newline at end of file +{"version":3,"file":"CliHelper.js","sourceRoot":"","sources":["../../src/utils/CliHelper.ts"],"names":[],"mappings":";;AAAA,mDAA4C;AAE5C,6CAAsC;AAEtC,MAAqB,SAAS;IAG7B,MAAM,CAAC,GAAG;QACT,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,oBAAoB;QACnB,MAAM,QAAQ,GAAG,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;QAClD,MAAM,iBAAiB,GAAG;YACzB;gBACC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;aACT;SACD,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,OAAO;gBACN,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,EAAE;gBAC7C,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;gBACxB,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,EAAE;aAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAE,GAAG,iBAAiB,EAAE,GAAG,cAAc,CAAE,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,WAAmB;QAChC,MAAM,cAAc,GAAI,uBAAa,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvE,oBAAU,CAAE,YAAY,CAAC,+BAA+B,cAAc,CAAC,IAAI,OAAO,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC;IAClH,CAAC;IAGD,sBAAsB;QACrB,IAAI,aAAa,GAAG,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YAC1C,aAAa,EAAE,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,MAAc;QAChC,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEzD,OAAO,WAAW,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,YAAoB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,uBAAa,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAiB,EAAE,EAAE;YAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;gBAC3D,KAAK,GAAG,KAAK,CAAC;aACd;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AA9DD,4BA8DC"} \ No newline at end of file diff --git a/app-cli/built/utils/StorageHelper.js b/app-cli/built/utils/StorageHelper.js index d0338a2..5c5ce1b 100755 --- a/app-cli/built/utils/StorageHelper.js +++ b/app-cli/built/utils/StorageHelper.js @@ -17,6 +17,13 @@ class StorageHelper { getMachines() { return Utils_1.default.copyObject(this.data.get(CAP_MACHINES) || []); } + removeMachine(machineName) { + const machines = this.getMachines(); + const removedMachine = machines.filter((machine) => machine.name === machineName)[0]; + const newMachines = machines.filter((machine) => machine.name !== machineName); + this.data.set(CAP_MACHINES, newMachines); + return removedMachine; + } saveMachine(machineToSaveOrUpdate) { const currMachines = this.getMachines(); let updatedMachine = false; diff --git a/app-cli/built/utils/StorageHelper.js.map b/app-cli/built/utils/StorageHelper.js.map index 888a4db..725cbaf 100755 --- a/app-cli/built/utils/StorageHelper.js.map +++ b/app-cli/built/utils/StorageHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"StorageHelper.js","sourceRoot":"","sources":["../../src/utils/StorageHelper.ts"],"names":[],"mappings":";;AACA,2CAA2C;AAC3C,mCAA4B;AAE5B,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,MAAqB,aAAa;IAGjC,MAAM,CAAC,GAAG;QACT,IAAI,CAAC,aAAa,CAAC,QAAQ;YAAE,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1E,OAAO,aAAa,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAID;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACnD,qBAAqB;IACtB,CAAC;IAED,WAAW;QACV,OAAO,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,qBAA+B;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,IAAI,EAAE;gBAChD,cAAc,GAAG,IAAI,CAAC;gBACtB,YAAY,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC;gBAC5C,MAAM;aACN;SACD;QAED,IAAI,CAAC,cAAc,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;QACrB,OAAO,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,qBAAqB,CAAC,uBAA2C;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,KAAK,uBAAuB,CAAC,GAAG,EAAE;gBAChD,UAAU,GAAG,IAAI,CAAC;gBAClB,QAAQ,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC;gBAC1C,MAAM;aACN;SACD;QAED,IAAI,CAAC,UAAU,EAAE;YAChB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;CACD;AA5DD,gCA4DC"} \ No newline at end of file +{"version":3,"file":"StorageHelper.js","sourceRoot":"","sources":["../../src/utils/StorageHelper.ts"],"names":[],"mappings":";;AACA,2CAA2C;AAC3C,mCAA4B;AAE5B,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,MAAqB,aAAa;IAGjC,MAAM,CAAC,GAAG;QACT,IAAI,CAAC,aAAa,CAAC,QAAQ;YAAE,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1E,OAAO,aAAa,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAID;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACnD,qBAAqB;IACtB,CAAC;IAED,WAAW;QACV,OAAO,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,WAAmB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEzC,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,qBAA+B;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,IAAI,EAAE;gBAChD,cAAc,GAAG,IAAI,CAAC;gBACtB,YAAY,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC;gBAC5C,MAAM;aACN;SACD;QAED,IAAI,CAAC,cAAc,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;QACrB,OAAO,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,qBAAqB,CAAC,uBAA2C;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,KAAK,uBAAuB,CAAC,GAAG,EAAE;gBAChD,UAAU,GAAG,IAAI,CAAC;gBAClB,QAAQ,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC;gBAC1C,MAAM;aACN;SACD;QAED,IAAI,CAAC,UAAU,EAAE;YAChB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;CACD;AArED,gCAqEC"} \ No newline at end of file diff --git a/app-cli/src/commands/captainduckduck.ts b/app-cli/src/commands/captainduckduck.ts index 1de2c37..d9b9a02 100755 --- a/app-cli/src/commands/captainduckduck.ts +++ b/app-cli/src/commands/captainduckduck.ts @@ -9,10 +9,10 @@ import * as program from 'commander'; // Command actions import login from './login'; +import list from './list'; +import logout from './logout'; // import serversetup = require('./serversetup'); -// import list = require('./list'); // import deploy = require('./deploy'); -// import logout = require('./logout'); // Setup program.version(packagejson.version).description(packagejson.description); @@ -26,6 +26,14 @@ program login(); }); +program.command('list').alias('ls').description('List all Captain machines currently logged in.').action(() => { + list(); +}); + +program.command('logout').description('Logout from a specific Captain machine.').action(() => { + logout(); +}); + // program // .command('serversetup') // .description('Performs necessary actions and prepares your Captain server.') @@ -33,14 +41,6 @@ program // serversetup(); // }); -// program.command('logout').description('Logout from a specific Captain machine.').action(() => { -// logout(); -// }); - -// program.command('list').alias('ls').description('List all Captain machines currently logged in.').action(() => { -// list(); -// }); - // program // .command('deploy') // .description( diff --git a/app-cli/src/commands/list.ts b/app-cli/src/commands/list.ts new file mode 100644 index 0000000..d8677a4 --- /dev/null +++ b/app-cli/src/commands/list.ts @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +import chalk from 'chalk'; +import StdOutUtil from '../utils/StdOutUtil'; +import StorageHelper from '../utils/StorageHelper'; +import { IMachine } from '../models/storage/StoredObjects'; + +function _displayMachine(machine: IMachine) { + console.log('>> ' + chalk.greenBright(machine.name) + ' at ' + chalk.cyan(machine.baseUrl)); +} + +function list() { + StdOutUtil.printMessage('\nLogged in Captain Machines:\n'); + + StorageHelper.get().getMachines().map((machine) => { + _displayMachine(machine); + }); + + StdOutUtil.printMessage(''); +} + +export default list; diff --git a/app-cli/src/commands/login.ts b/app-cli/src/commands/login.ts index f0709be..40a8806 100644 --- a/app-cli/src/commands/login.ts +++ b/app-cli/src/commands/login.ts @@ -130,7 +130,7 @@ async function login() { name: captainName }).getAuthToken(captainPassword); - StdOutUtil.printGreenMessage(`Logged in successfully to ${baseUrl}`); + StdOutUtil.printGreenMessage(`\nLogged in successfully to ${baseUrl}`); StdOutUtil.printGreenMessage(`Authorization token is now saved as ${captainName} \n`); } catch (error) { const errorMessage = error.message ? error.message : error; diff --git a/app-cli/src/commands/logout.ts b/app-cli/src/commands/logout.ts new file mode 100644 index 0000000..8ceb157 --- /dev/null +++ b/app-cli/src/commands/logout.ts @@ -0,0 +1,43 @@ +#!/usr/bin/env node + +import * as inquirer from 'inquirer'; +import StdOutUtil from '../utils/StdOutUtil'; +import CliHelper from '../utils/CliHelper'; + +function generateQuestions() { + const listOfMachines = CliHelper.get().getMachinesAsOptions(); + + return [ + { + type: 'list', + name: 'captainNameToLogout', + message: 'Select the Captain Machine you want to logout from:', + choices: listOfMachines + }, + { + type: 'confirm', + name: 'confirmedToLogout', + message: 'Are you sure you want to logout from this Captain machine?', + default: false, + when: (answers: any) => answers.captainNameToLogout + } + ]; +} + +async function logout() { + const questions = generateQuestions(); + + StdOutUtil.printMessage('Logout from a Captain Machine and clear auth info'); + + const answers = await inquirer.prompt(questions); + const { captainNameToLogout, confirmedToLogout } = answers; + + if (!captainNameToLogout || !confirmedToLogout) { + StdOutUtil.printMessage('\nOperation cancelled by the user...\n'); + return; + } + + CliHelper.get().logoutMachine(captainNameToLogout); +} + +export default logout; diff --git a/app-cli/src/utils/CliHelper.ts b/app-cli/src/utils/CliHelper.ts index 4daf3a0..9fa0cae 100644 --- a/app-cli/src/utils/CliHelper.ts +++ b/app-cli/src/utils/CliHelper.ts @@ -1,5 +1,6 @@ import StorageHelper from './StorageHelper'; import { IMachine } from '../models/storage/StoredObjects'; +import StdOutUtil from './StdOutUtil'; export default class CliHelper { static instance: CliHelper; @@ -9,6 +10,32 @@ export default class CliHelper { return CliHelper.instance; } + getMachinesAsOptions() { + const machines = StorageHelper.get().getMachines() + const firstItemInOption = [ + { + name: '-- CANCEL --', + value: '', + short: '' + } + ]; + const listOfMachines = machines.map((machine) => { + return { + name: `${machine.name} at ${machine.baseUrl}`, + value: `${machine.name}`, + short: `${machine.name} at ${machine.baseUrl}` + }; + }); + + return [ ...firstItemInOption, ...listOfMachines ]; + } + + logoutMachine(machineName: string) { + const removedMachine = StorageHelper.get().removeMachine(machineName); + StdOutUtil. printMessage(`You are now logged out from ${removedMachine.name} at ${removedMachine.baseUrl}...\n`); + } + + findDefaultCaptainName() { let currentSuffix = StorageHelper.get().getMachines().length + 1; const self = this; diff --git a/app-cli/src/utils/StorageHelper.ts b/app-cli/src/utils/StorageHelper.ts index f8f0522..6810dde 100644 --- a/app-cli/src/utils/StorageHelper.ts +++ b/app-cli/src/utils/StorageHelper.ts @@ -24,6 +24,15 @@ export default class StorageHelper { return Utils.copyObject(this.data.get(CAP_MACHINES) || []); } + removeMachine(machineName: string) { + const machines = this.getMachines(); + const removedMachine = machines.filter((machine) => machine.name === machineName)[0]; + const newMachines = machines.filter((machine) => machine.name !== machineName); + this.data.set(CAP_MACHINES, newMachines); + + return removedMachine; + } + saveMachine(machineToSaveOrUpdate: IMachine) { const currMachines = this.getMachines(); let updatedMachine = false;