# File lib/nanoc/cli/commands/deploy.rb, line 18 def run self.load_site # List deployers if options[:'list-deployers'] deployers = Nanoc::PluginRegistry.instance.find_all(Nanoc::Extra::Deployer) deployer_names = deployers.keys.sort_by { |k| k.to_s } puts "Available deployers:" deployer_names.each do |name| puts " #{name}" end return end # Get & list configs deploy_configs = site.config.fetch(:deploy, {}) if options[:list] if deploy_configs.empty? puts "No deployment configurations." else puts "Available deployment configurations:" deploy_configs.keys.each do |name| puts " #{name}" end end return end # Can't proceed further without a deploy config if deploy_configs.empty? raise Nanoc::Errors::GenericTrivial, "The site has no deployment configurations." end # Get target target = options.fetch(:target, :default).to_sym config = deploy_configs.fetch(target) do raise Nanoc::Errors::GenericTrivial, "The site has no deployment configuration for #{target}." end # Get deployer names = Nanoc::Extra::Deployer.all.keys name = config.fetch(:kind) do $stderr.puts "Warning: The specified deploy target does not have a kind attribute. Assuming rsync." 'rsync' end deployer_class = Nanoc::Extra::Deployer.named(name) if deployer_class.nil? raise Nanoc::Errors::GenericTrivial, "The specified deploy target has an unrecognised kind “#{name}” (expected one of #{names.join(', ')})." end # Check unless options[:'no-check'] runner = Nanoc::Extra::Checking::Runner.new(site) if runner.has_dsl? puts "Running issue checks…" ok = runner.run_for_deploy if !ok puts "Issues found, deploy aborted." return end puts "No issues found. Deploying!" end end # Run deployer = deployer_class.new( site.config[:output_dir], config, :dry_run => options[:'dry-run']) deployer.run end
Generated with the Darkfish Rdoc Generator 2.