module Caravan
Constants
- VERSION
Public Class Methods
create_listener(deployer, src_path)
click to toggle source
# File lib/caravan.rb, line 63 def create_listener(deployer, src_path) Listen.to(src_path) do |modified, added, removed| # rubocop:disable Lint/NonLocalExitFromIterator return unless deployer.handle_change(modified, added, removed) return unless deployer.before_deploy deployer.run deployer.after_deploy # rubocop:enable Lint/NonLocalExitFromIterator end end
deploy_once(deployer)
click to toggle source
# File lib/caravan.rb, line 56 def deploy_once(deployer) deployer.before_deploy deployer.run deployer.after_deploy Caravan::Message.success("Deployed once.") end
dump_default_conf()
click to toggle source
# File lib/caravan.rb, line 91 def dump_default_conf user_config_path = File.join( File.expand_path("."), Caravan::Config.default_conf_name ) default_conf = Caravan::Config.default_conf Caravan::Config.dump(user_config_path, default_conf) end
process_conf(src_path, yaml_name = Caravan::Config.default_conf_name)
click to toggle source
# File lib/caravan.rb, line 74 def process_conf(src_path, yaml_name = Caravan::Config.default_conf_name) Caravan::Message.success("Reading configuration...") src_path = '.' if src_path.nil? user_config_path = File.join(File.expand_path(src_path), yaml_name) conf = Caravan::Config.from(user_config_path) Caravan::Message.warn( "Caravan now support multiple specs in `caravan.yml`. " \ "The default spec is `master`. " \ "And we detect that you may need to migrate." ) if Caravan::ConfigMigration.need_migrate?(conf) conf end
sleep_forever()
click to toggle source
# File lib/caravan.rb, line 87 def sleep_forever loop { sleep 1000 } end
start(merged_conf)
click to toggle source
# File lib/caravan.rb, line 16 def start(merged_conf) src_path = merged_conf["src"] target_path = merged_conf["dst"] deploy_mode = merged_conf["deploy_mode"] ignores = merged_conf["exclude"] debug = merged_conf["debug"] Caravan::Config.pretty_puts(merged_conf) deployer = Caravan::Deploy.create_deployer( src_path, target_path, deploy_mode ) deployer.debug = true if debug exit(-1) if deployer.nil? listener = create_listener(deployer, src_path) ignores.each do |item| listener.ignore(Regexp.compile(item)) end Caravan::Message.success("Starting to watch #{src_path}...") deployer.after_create if merged_conf["once"] deploy_once(deployer) exit(0) end listener.start trap("INT") do listener.stop deployer.before_destroy Caravan::Message.success("\tHalting watching.") exit(0) end sleep_forever end