Perl 6的自動任務執行模塊Tomtit ,勤快好用的趁手山雀!

 

Tomtit介紹

Tomtit是基於Perl6語言開發的任務執行器,它方便好用、任務定義快捷簡潔,內置數十個常用場景任務插件,利用該雀兒幫我們自動化Perl/Perl6以及更多的語言開發任務。

最適合Perl5/Perl6開發人員,也支持其他開發場景使用;

支持Perl6語言的編程API;

自帶許多常見任務任務配置:運行Bash腳本、創建文件和啓動/停止服務 ,更多的任務腳本詳見:

https://github.com/melezhik/sparrowdo/blob/master/core-dsl.md

它有幾十個插件,詳細列表請訪問http://sparrowhub.org

支持擴展, 你可以使用自己喜歡的語言並編寫新的插件來滿足的特定需求。

最重要的是作爲底線,它可以幫助我們輕鬆完成常見的任務,但不限於靜態DSL,而是允許你使用現代化的強大的Perl6語言來配置任務場景。說這麼多,你一定心動了把,那讓咱們開始把。

安裝

Tomtit是一個標準的Perl6模塊,可以使用Perl6模塊生態系統包管理軟件zef安裝。

zef install  Tomtit

成功安裝後,Tomcatit在你的shell環境增加tom -命令行客戶端來執行具體的任務。

啓動

你需要一個系統引啓動器(*)來引導Tomtit的內部任務器的運行,實際上就是一個簡單的命令

 tom --bootstrap

注意:你需要sudo權限來啓動該任務器。

完成啓動後,你就可以執行任務腳本,接着讓我們來看看典型的tomtit工作流程。

Tomtit工作流程

通常使用tomtit的工作流程是先定義方案(任務腳本),然後運行它們時。它基於任務爲中心的方法非常便捷,我們可以檢查應用程序的源代碼並運行一些相關的任務。比如,我們有一個應用程序源代碼,我們只需執行3個標準操作:

build,測試和安裝

我們定以後任務方案後,我們命名他們然後構建,測試和安裝。如果使用make程序來構建項目,則方案對應make對應參數的3次調用。讓我們創建我們的第一個Tomtit場景:

git checkout $git-repo

 

mkdir .tom

 

nano .tom/build.pl6

nano .tom/test.pl6

nano .tom/install.pl6

 

每個場景的代碼和bash命令運行make一樣簡單:

.tom/build.pl6:

bash "make"

.tom/test.pl6:

bash "make test"

.tom/install.pl6:

bash "sudo make install"

程序化API

tomtit的任務方案場景的腳本是用Perl6編寫的,對應於調用不同的任務,但這些場景不一定是有限的任務調用,它們只是Perl6程序,基於Perl6的強大功能你可以使用它做任何事情。

Tomtit中有兩種語法不同的任務。你通過任務運行函數調用的第一個是快捷方式,它與task-run幾乎相同但具有助記符名稱,有時更容易簽名。

在上述make實用程序的場景中,我們使用bash快捷方式調用一段Bash代碼。tomtie可調用的完整快捷方式列表,請瀏覽:

https://github.com/melezhik/sparrowdo/blob/master/core-dsl.md

任務和插件

換句話說,任務運行和快捷方式只是一種調用任務塊的方法,如果代碼從SparrowHub下載,腳本存儲庫然後由sparrow內部腳本運行執行,雖然不之前沒有提到過,但實際上zoo-repository支持更多的birds!

這些小腳本或任務也叫Sparrow插件。Tomtits的任務場景基對應於一個執行的Sparrow插件或任務的列表。

命令行API

通過運行tom --list,你可以到當前可用的所有任務場景:

[scenarios list]

build

test

install

 

一旦定義了任務方案,就可以通過tom --run=$scenario命令運行它們。例如:

tom run = build,tom run = test等等。

要回想一下你運行的最後一個場景是什麼,可使用tom --last命令。更多文檔,請參考tomtitgithub頁面的tom命令行的相關說明。

自定義任務

就上上文中我們提到的,我們不必受限於Tomtit場景中運行Bash和官方一些標準的任務場景。我們可以下載和自己開發相關插件,可以實現各種形形色色的任務。

例如,我們創建一個用用戶參數(如用戶名和電子郵件)配置本地git存儲庫的方案。你要clone一個新項目時,通常需要對其做修改並提交修改,最後push到遠程庫。那麼本任務就是幫助你實現這個任務,並能自動緩存用戶賬號信息,以後不需要再輸入用戶名和密碼(http/https)。

.tom/git-setup.pl6:

task-run "set git", "git-base", %(

  email                => '[email protected]',

  name                 => 'chongchong',

  config_scope         => 'local',

  set_credential_cache => 'on'

);

 

通過設置config_scope,我們定義任務爲對本地git存儲庫進行設置,並通過設置set_credential_cache爲「on」,我們要求git緩存密碼。

可以在SparrowHub的sparrow插件存儲庫中找到可在Tomtit方案中使用的插件列表。

在下面的場景示例中,我們創建任務以通過vsts-build插件遠程運行VSTS構建:

.tom/build-vsts.pl6:

task_run "run my build", "vsts-build", %(

    definition => "BackEndBuild"

)

 

你可以在Tomtit方案中使用許多其他插件作爲任務。 關於更多的插件,請查看SparrowHub存儲庫SparrowHub

總結

Tomtit爲我們提供了大量可用於日常任務的小腳本或插件,尤其是在處理開發類的源代碼管理和自動化構建的任務。Tomtit任務場景配置腳本使用的是普通Perl6腳本,用於生成執行任務的動態列表。任務腳本支持語法糖,你可以使用預定義的內置函數集,而不是引用插件,使代碼更簡潔,更容易閱讀。

如果由於某些原因你找不到解決你特定任務的插件,你可以隨時創建自己的插件。