Cri::Command
# File lib/nanoc3/cli/commands/compile.rb, line 10 def aliases [] end
# File lib/nanoc3/cli/commands/compile.rb, line 18 def long_desc 'Compile all items of the current site. If an identifier is given, ' + 'only the item with the given identifier will be compiled. ' + "\n\n" + 'By default, only item that are outdated will be compiled. This can ' + 'speed up the compilation process quite a bit, but items that include ' + 'content from other items may have to be recompiled manually. In ' + 'order to compile items even when they are outdated, use the --force option.' end
# File lib/nanoc3/cli/commands/compile.rb, line 6 def name 'compile' end
# File lib/nanoc3/cli/commands/compile.rb, line 32 def option_definitions [ # --all { :long => 'all', :short => 'a', :argument => :forbidden, :desc => 'alias for --force (DEPRECATED)' }, # --force { :long => 'force', :short => 'f', :argument => :forbidden, :desc => 'compile items even when they are not outdated' } ] end
# File lib/nanoc3/cli/commands/compile.rb, line 47 def run(options, arguments) # Make sure we are in a nanoc site directory puts "Loading site data..." @base.require_site @base.site.load_data # Check presence of --all option if options.has_key?(:all) $stderr.puts "Warning: the --all option is deprecated; please use --force instead." end # Find item(s) to compile if arguments.size == 0 item = nil elsif arguments.size == 1 # Find item identifier = arguments[0].cleaned_identifier item = @base.site.items.find { |item| item.identifier == identifier } # Ensure item if item.nil? $stderr.puts "Unknown item: #{identifier}" exit 1 end end # Give feedback puts "Compiling #{item.nil? ? 'site' : 'item'}..." # Initialize profiling stuff time_before = Time.now @filter_times ||= {} @times_stack ||= [] setup_notifications # Compile @base.site.compiler.run( item, :force => options.has_key?(:all) || options.has_key?(:force) ) # Find reps reps = @base.site.items.map { |i| i.reps }.flatten # Show skipped reps 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 # Show diff write_diff_for(reps) # Give general feedback 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
Generated with the Darkfish Rdoc Generator 2.