2016-02-22 2 views
0

Возможно ли в commander.js проверить, что команда setup была запущена и завершена, прежде чем разрешить любые другие действия.Разрешить выполнение команд только в том случае, если настройка была завершена в Commander.js.

Если команда пыталась запустить это покажет сообщение для запуска $ command auth первого

+0

Если это состояние в вашей программе, распространяемое по нескольким вызовам, вам нужно сохранить это самостоятельно. Какие шаги вы выполняете в своей команде 'setup'? – bolav

+0

В настоящее время я сохраняю законченное состояние с помощью configstore, но я хотел бы проверить каждую команду, что эта команда настройки была успешно завершена до тех пор, даже когда я вызываю функцию checkSetup() в своих действиях и возвращаю остальную часть действия еще работает после –

ответ

0

Там нет никакого способа, чтобы легко сделать это в commander.js. Вам нужно сделать это для каждой команды .action, или вы можете сделать это, когда вы настраиваете командира.

program 
    .command('setup') 
    .action(function() { 
    console.log('setup done'); 
    storeSetup(); 
    }); 

if (setupHasRun()) { 
    program 
    .command('ls [dirs...]') 
    .action(function (dirs) { 
     console.log('ls %s', dirs); 
    }); 

    program 
    .command('rmdir <dir> [otherDirs...]') 
    .action(function (dir, otherDirs) { 
     console.log('rmdir %s', dir); 
     if (otherDirs) { 
     otherDirs.forEach(function (oDir) { 
      console.log('rmdir %s', oDir); 
     }); 
     } 
    }); 
}