def run(item=nil, params={})
FileUtils.mkdir_p(@site.config[:output_dir])
dependency_tracker.load_graph
if item
items = [ item ] + dependency_tracker.successors_of(item)
items.uniq!
else
items = @site.items
end
reps = items.map { |i| i.reps }.flatten
if params.has_key?(:force) && params[:force]
reps.each { |r| r.force_outdated = true }
else
dependency_tracker.propagate_outdatedness
end
forget_dependencies_if_outdated(items)
dependency_tracker.start
compile_reps(reps)
dependency_tracker.stop
FileUtils.rm_rf(Nanoc3::Filter::TMP_BINARY_ITEMS_DIR)
dependency_tracker.store_graph
end