module Luban::Deployment::Command::Tasks::Crontab
Constants
- Actions
Public Instance Methods
cronjob(**job)
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 206 def cronjob(**job) validate_cronjob(job) cronjobs << job end
cronjobs()
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 202 def cronjobs; @cronjobs ||= []; end
crontab_tasks()
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 211 def crontab_tasks; commands[:conjobs].commands; end
has_cronjobs?()
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 204 def has_cronjobs?; !cronjobs.empty?; end
Protected Instance Methods
assign_cronjob(roles: luban_roles, hosts: nil, **job)
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 231 def assign_cronjob(roles: luban_roles, hosts: nil, **job) roles = Array(roles) hosts = Array(hosts) servers = select_servers(roles, hosts) servers.each { |s| server(s, cronjob: job) } end
assign_cronjobs()
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 227 def assign_cronjobs cronjobs.each { |job| assign_cronjob(**job) } end
setup_crontab_tasks()
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 238 def setup_crontab_tasks command :cronjobs do desc "Run crontab tasks" task :update do desc 'Update cron jobs' action! :update_cronjobs end task :list do desc 'List cron jobs' switch :all, "List all cron jobs" action! :list_cronjobs end end end
validate_cronjob(job)
click to toggle source
# File lib/luban/deployment/cli/command.rb, line 215 def validate_cronjob(job) if job[:command].nil? abort "Aborted! Cron job command is MISSING." end if job[:schedule].nil? abort "Aborted! Cron job schedule is MISSING for command: #{job[:command]}" end if cronjobs.any? { |j| j[:command] == job[:command] } abort "Aborted! Duplicate command is FOUND: #{job[:command]}" end end