def run(options, arguments)
puts "Loading site data..."
@base.require_site
@base.site.load_data
if options.has_key?(:all)
$stderr.puts "Warning: the --all option is deprecated; please use --force instead."
end
if arguments.size == 0
item = nil
elsif arguments.size == 1
identifier = arguments[0].cleaned_identifier
item = @base.site.items.find { |item| item.identifier == identifier }
if item.nil?
$stderr.puts "Unknown item: #{identifier}"
exit 1
end
end
puts "Compiling #{item.nil? ? 'site' : 'item'}..."
time_before = Time.now
@filter_times ||= {}
@times_stack ||= []
setup_notifications
@base.site.compiler.run(
item,
:force => options.has_key?(:all) || options.has_key?(:force)
)
reps = @base.site.items.map { |i| i.reps }.flatten
reps.select { |r| !r.compiled? }.each do |rep|
next if rep.raw_path.nil?
duration = @rep_times[rep.raw_path]
Nanoc3::CLI::Logger.instance.file(:high, :skip, rep.raw_path, duration)
end
write_diff_for(reps)
puts
puts "No items were modified." unless reps.any? { |r| r.modified? }
puts "#{item.nil? ? 'Site' : 'Item'} compiled in #{format('%.2f', Time.now - time_before)}s."
if options.has_key?(:verbose)
print_state_feedback(reps)
print_profiling_feedback(reps)
end
end