# add list of all sites so that this file does something useful usage 'publish' summary 'publish site(s)' description 'Publishes site(s) to all online targets.' flag :p, :'pretend', 'pretend to publish' required :s, :sites, 'sites' module Nanoc::CLI::Commands class Publish < ::Nanoc::CLI::CommandRunner def run def cmd command m = method(options[:pretend] ? :puts : :system) m.call(command) or raise "command failed: '#{command}'" end # push changes to github cmd "git push --all origin" # regenerate site links cmd "nanoc references" # prepare images cmd "nanoc images" sites_arg(options[:sites]).each do |site| puts "publishing site: #{site}" # clean unneeded files cmd "nanoc prune -s #{site} --yes" # compile site to ensure a usable state cmd "nanoc compile -s #{site}" # compress files cmd "nanoc compress -s #{site}" # deploy files cmd "nanoc deploy -t default -s #{site}" end end end end runner Nanoc::CLI::Commands::Publish