UNPKG

1.79 kBJavaScriptView Raw
1const chalk = require( 'chalk' );
2const inquirer = require( 'inquirer' );
3const util = require( '../lib/util' );
4const prompt = require( '../lib/prompt' );
5const config = require( '../lib/config' );
6const configProfile = require( '../lib/configProfile' );
7
8/**
9 * The main command.
10 * @param {Object} program Program options.
11 */
12async function profile( program ) {
13 const optionSelectProfile = program.args[0].select;
14 const optionList = program.args[0].list;
15
16 if ( optionList ) {
17 let name;
18 const profiles = util.getProfiles();
19 const currentProfileName = util.getCurrentProfileName();
20
21 profiles.forEach( ( profilePath ) => {
22 const profileName = util.getProfileName( profilePath );
23
24 if ( currentProfileName === profileName ) {
25 name = chalk`{green.bold ⬤ }${profileName}`;
26 } else {
27 name = chalk`{gray.bold ⬤ }${profileName}`;
28 }
29
30 console.log( name );
31 });
32
33 process.exit();
34 }
35
36 if ( optionSelectProfile ) {
37 const path = util.getProfilePath( optionSelectProfile );
38 config.updateCurrentProfile( path );
39 const currentProfile = util.getCurrentProfileName();
40 console.log( chalk`{green Changed profile to ${currentProfile}.}` );
41 } else {
42 let changeProfilePromptObj;
43 const profileOptionPromptObj = await inquirer.prompt( prompt.getprofileOptionPrompt() );
44
45 if ( profileOptionPromptObj.answer === 'create' ) {
46 configProfile.create();
47 } else if ( profileOptionPromptObj.answer === 'remove' ) {
48 configProfile.remove();
49 } else {
50 changeProfilePromptObj = await inquirer.prompt( prompt.getChangeProfilePrompt() );
51 config.updateCurrentProfile( changeProfilePromptObj.answer );
52 const currentProfile = util.getCurrentProfileName();
53 console.log( chalk`{green Changed profile to ${currentProfile}.}` );
54 }
55 }
56}
57
58module.exports = profile;