2017-03-09 49 views
2

我的應用程序,Alambic命令,採用大Mojolicious框架,並定義可與例如被執行的命令$ script/alambic alambic init使用Mojolicious在系統CLI

現在,當我看到喬爾Berger的Galileo和工作的其他偉大的作品,我發現他們有一個系統命令,可以在外殼被直接調用,例如$ galileo init。我看着這個莫名其妙的文檔,但沒發現我的應用程序。現在我甚至不確定它是Mojolicious還是Perl CPAN構建過程使它成爲可能。任何提示都將不勝感激。

+1

您需要將腳本放在PATH上可找到的地方。通常這就是bin目錄,它將被安裝到正確的位置。如果你想釋放到cpan或構建一個使用cpan安裝的分發版(但不能上傳到PAUSE),那就是要走的路。查看App :: Cpanminus或App :: namespace中的其他內容以獲取示例。您可以在metacpan.org或其github上瀏覽他們的代碼。如果您發佈到CPAN,請將您的應用移至App :: namespace領域。 – simbabque

+0

謝謝@simbabque我想我現在明白了。但是,你是什麼意思的領帶App ::命名空間?在mojolicious中,我的命名空間是Alambic ::所以在構建時如何使它成爲不同的命名空間?你會有任何指針或資源嗎?謝謝! –

+1

我沒說過領帶。總的來說,我們不贊成在PAUSE上聲明一個頂級命名空間,但是看到你的東西非常大,並且有一個獨特的名字,應該沒問題。無視這一點。 – simbabque

回答

-1

我會在這裏提供完整的答案,以補充@simbabque的評論。

所以對於一個Mojolicious應用程序,就必須使其安裝(即CPAN感知),以便有複製到路徑的目錄的二進制文件。更特別爲Alambic我只好:

  1. 設置InstallablePaths(我決定去Module::Build),見the documentation for the module
  2. 創建Build.PL文件
  3. 運行Module::Build序列構建模塊:

perl Build.PL
./生成清單
./Build
./Build測試
./Build安裝

在安裝步驟中,二進制文件被複制到在$PATH一個Perl管理目錄。在該步驟之後,alambic命令在我的shell中作爲命令可用。

注:對於一個擁有他/她自己的命令在命令行可用,Mojolicious應用程序必須當然define one or more commands