class Nanoc::CLI::Commands::Prune

Public Instance Methods

run() click to toggle source
# File lib/nanoc/cli/commands/prune.rb, line 20
def run
  @site = load_site
  res = Nanoc::Core::Compiler.new_for(@site).run_until_reps_built
  reps = res.fetch(:reps)

  listener_class = Nanoc::CLI::CompileListeners::FileActionPrinter
  listener = listener_class.new(reps: reps)
  listener.start_safely

  if options.key?(:yes)
    Nanoc::Core::Pruner.new(@site.config, reps, exclude: prune_config_exclude).run
  elsif options.key?(:'dry-run')
    Nanoc::Core::Pruner.new(@site.config, reps, exclude: prune_config_exclude, dry_run: true).run
  else
    $stderr.puts 'WARNING: Since the prune command is a destructive command, it requires an additional --yes flag in order to work.'
    $stderr.puts
    $stderr.puts 'Please ensure that the output directory does not contain any files (such as images or stylesheets) that are necessary but are not managed by Nanoc. If you want to get a list of all files that would be removed, pass --dry-run.'
    exit 1
  end
ensure
  listener&.stop_safely
end

Protected Instance Methods

prune_config() click to toggle source
# File lib/nanoc/cli/commands/prune.rb, line 45
def prune_config
  @site.config[:prune] || {}
end
prune_config_exclude() click to toggle source
# File lib/nanoc/cli/commands/prune.rb, line 49
def prune_config_exclude
  prune_config[:exclude] || {}
end