namespace :syslog do
# @return [String] def masked_repo_url repo_url = fetch(:repo_url) if repo_url.match(/\Ahttps/) uri = URI.parse(repo_url) if uri.password uri.password = '***' end # user is also masked! # e.g. https://password:x-oauth-basic@github.com/example/example.git' if uri.user uri.user = '***' end uri else repo_url end end set :tag, 'capistrano' set :starting_format, -> { "deploy starting repository:%s revision:%s" % [ masked_repo_url, fetch(:current_revision), ] } set :finishing_format, -> { repo_url = fetch(:repo_url) "deploy finishing repository:%s revision:%s" % [ masked_repo_url, fetch(:current_revision), ] } desc 'syslog current revision after deploy:starting ( `deploy:set_current_revision` is actual )' task :deploy_starting do on release_roles(:all) do execute "logger -i -s -t %s %s" % [ fetch(:tag), fetch(:starting_format), ] end end desc 'syslog current revision after deploy:finishing' task :deploy_finishing do on release_roles(:all) do execute "logger -i -s -t %s %s" % [ fetch(:tag), fetch(:finishing_format), ] end end # Why use deploy:set_current_revision? -> to retrive currrent_revision after 'deploy:set_current_revision', 'syslog:deploy_starting' after 'deploy:finishing', 'syslog:deploy_finishing'
end