Vorpal - 如何使用提示执行命令

时间:2017-06-26 18:12:27

标签: javascript node.js vorpal.js

我目前正在使用在REPL模式下使用Vorpal的第三方应用程序。我正在尝试使用Vorpal中的@extend函数自动化一些部署配置,以便在我的项目中使用。一切正常,直到有提示。那时,我的执行挂起,直到我做一些手动步骤(这不是我想要的),我才能进步。

我查看了文档,但没有任何提及任何技巧。我想避免深入更改现有代码,但如果需要使用选项,我会这样做。

以下是我的代码示例: https://gist.github.com/gretro/b67aa364967c3fa2c82279b7e4236c2e

我有什么遗漏或可以用来做我需要做的事吗?

1 个答案:

答案 0 :(得分:0)

下面的代码可能会有所帮助,可以使用exec命令调用带有或不带有命令行参数的vorpal命令,如果没有,则提示输入用户名和密码。这是你所追求的吗?

    /*jshint esversion: 6 */
    const vorpal         = require('vorpal')();
    vorpal
        .delimiter('vorpal$')
        .command('logon [uname] [pwd]', 'logs you on.')
            .action(function(args, callback) {        
                var the_username = "";
                var the_password = "";

                if (args.uname !== undefined) {
                    the_username = args.uname;
                    the_password = args.pwd;
                    console.log("The username was: "+the_username);
                    console.log("The password was: "+the_password);
                } else {
                    let questions = [
                        {
                            type: 'input',
                            name: 'username',
                            message: 'Enter username: '    
                        },
                        {
                            type: 'password',
                            name: 'password',
                            message: 'Enter password: '    
                        }
                    ];

                    this.prompt(questions, function (answers){
                        the_username = answers.username;
                        the_password = answers.password;
                        console.log("The prompted username was: "+the_username);
                        console.log("The prompted password was: "+the_password);    
                    });
                }
            });
    vorpal.show();
    // Uncomment the appropriate exec command, the one with arguments, 
    // or the one that prompts for the username/password.
    // vorpal.exec('logon auser apassword');
    vorpal.exec('logon');

执行如下:

vorpal$
The username was: auser
The password was: apassword

或者这样:

vorpal$
Enter username: fdfss
Enter password: ******
The prompted username was: fdfss
The prompted password was: fdfsdf