CapistranoTaskに引数を指定可能にする
Capistranoのタスクは、引数取らないほうがいいかなとは思ってるんですが、
start | stop | restart | status
位は取れたほうがむしろコードが綺麗だよね。って事でやってみました。
> vi lib/capistrano/tasks/deamon.rake namespace :deamon do desc "service deamons ctrl" task :service_a, :command do | task, args | on roles(:all) do puts "process #{args[:command]}" end end end
> cap pdev deamon:service_a[start] ROLES=web app=appname --trace ** Invoke pdev (first_time) ** Execute pdev ** Invoke load:defaults (first_time) ** Execute load:defaults config/appname_deploy.rb:15: warning: class variable access from toplevel config/appname_deploy.rb:24: warning: class variable access from toplevel ** Invoke deamon:pa_web (first_time) ** Execute deamon:pa_web process start
表示されましたねー。 これでコマンド側に渡せそう。
(2016/04/01追記) invokeで実行する時は以下の様にする。
invoke "deamon:service_a", "stop"