2016-02-22 87 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); 
     }); 
     } 
    }); 
} 
相關問題