require ‘capistrano/slnky/helpers’
include Capistrano::Slnky::Helpers
namespace :load do
task :defaults do set :slnky_service, -> { "#{fetch(:application)}-#{fetch(:stage)}" } set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids') set :linked_files, fetch(:linked_files, []).push('.env') set :templates_path, 'config/templates' end
end
namespace :slnky do
task :mkdir do on roles :app do execute :mkdir, '-pv', shared_path end end desc 'upload upstart config' task :upstart do on roles :app do sudo_upload! template('upstart.conf.erb'), "/etc/init/#{fetch(:slnky_service)}.conf" end end [:start, :stop, :restart].each do |command| desc "#{command} slnky service" task command do on roles :app do sudo 'service', fetch(:slnky_service), command end end end
end
namespace :deploy do
after :publishing, 'slnky:restart' desc "push deploy.env to service's shared_path on the server" task :dotenv do on roles :app do upload! 'deploy.env', "#{shared_path}/.env" end end
end
desc ‘setup task’ task :setup do
invoke 'slnky:mkdir' invoke 'slnky:upstart' invoke 'deploy:dotenv'
end