From c9dea9ce5ce66c7d2170ec05f9286e6640225b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Tue, 9 Sep 2014 19:25:20 +0200 Subject: [PATCH] TRIVIAL: improve display of the rebake task --- lib/tasks/posts.rake | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/tasks/posts.rake b/lib/tasks/posts.rake index 2b5c023dce2..8e7b2f014e8 100644 --- a/lib/tasks/posts.rake +++ b/lib/tasks/posts.rake @@ -8,17 +8,6 @@ task 'posts:refresh_oneboxes' => :environment do ENV['RAILS_DB'] ? rebake_posts(invalidate_oneboxes: true) : rebake_posts_all_sites(invalidate_oneboxes: true) end -def rebake_post(post,opts) - changed = post.rebake!(opts) - if changed - putc "#" - else - putc "." - end -rescue => e - puts "\n\nFailed to bake topic_id #{post.topic_id} post_id #{post.id} #{e}\n#{e.backtrace.join("\n")} \n\n" -end - def rebake_posts_all_sites(opts = {}) RailsMultisite::ConnectionManagement.each_connection do |db| rebake_posts(opts) @@ -26,17 +15,28 @@ def rebake_posts_all_sites(opts = {}) end def rebake_posts(opts = {}) - puts "Re baking post markdown for #{RailsMultisite::ConnectionManagement.current_db}, changes are denoted with #, no change with ." + puts "Rebaking post markdown for '#{RailsMultisite::ConnectionManagement.current_db}'" - total = 0 - Post.find_each do |post| - rebake_post(post,opts) - total += 1 + total = Post.count + rebaked = 0 + + Post.order(updated_at: :asc).find_each do |post| + rebake_post(post, opts) + print_status(rebaked += 1, total) end - puts "\n\n#{total} posts done!\n#{'-' * 50}\n" + puts "", "#{rebaked} posts done!", "-" * 50 end +def rebake_post(post, opts) + post.rebake!(opts) +rescue => e + puts "", "Failed to rebake (topic_id: #{post.topic_id}, post_id: #{post.id})", e, e.backtrace.join("\n") +end + +def print_status(current, max) + print "\r%9d / %d (%5.1f%%)" % [current, max, ((current.to_f / max.to_f) * 100).round(1)] +end desc 'normalize all markdown so
 is not used and instead backticks'
 task 'posts:normalize_code' => :environment do