From 2f415171915482080f8e5c63b53a4a387e4de5b7 Mon Sep 17 00:00:00 2001 From: Ryan Daigle Date: Sat, 23 Jan 2010 15:47:43 -0500 Subject: Update to rakefile to allow working on a single post at a time (and saving regeneration time) --- Rakefile | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile index b872ac4c..a38f1814 100644 --- a/Rakefile +++ b/Rakefile @@ -4,6 +4,8 @@ site_url = "http://yoursite.com" # deployed site url for sitemap.xml generato port = "4000" # preview project port eg. http://localhost:4000 site = "site" # compiled site directory source = "source" # source file directory +stash = "_stash" +posts = "_posts" ## -- Rsync Deploy config -- ## ssh_user = "user@host.com" # for rsync deployment @@ -47,6 +49,21 @@ task :post, :filename do |t, args| end end +# usage rake isolate[my-post] +desc "Move all other posts than the one currently being worked on to a temporary stash location (stash) so regenerating the site happens much quicker." +task :isolate, :filename do |t, args| + stash_dir = "#{source}/#{stash}" + FileUtils.mkdir(stash_dir) unless File.exist?(stash_dir) + Dir.glob("#{source}/#{posts}/*.*") do |post| + FileUtils.mv post, stash_dir unless post.include?(args.filename) + end +end + +desc "Move all stashed posts back into the posts directory, ready for site generation." +task :integrate do + FileUtils.mv Dir.glob("#{source}/#{stash}/*.*"), "#{source}/#{posts}/" +end + desc "list tasks" task :list do puts "Tasks: #{(Rake::Task.tasks - [Rake::Task[:list]]).to_sentence}" @@ -109,13 +126,13 @@ task :watch do end desc "generate and deploy website via rsync" -multitask :deploy_rsync => [:default, :clean_debug] do +multitask :deploy_rsync => [:integrate, :default, :clean_debug] do puts ">>> Deploying website to #{site_url} <<<" ok_failed system("rsync -avz --delete #{site}/ #{ssh_user}:#{document_root}") end desc "generate and deploy website to github user pages" -multitask :deploy_github => [:default, :clean_debug] do +multitask :deploy_github => [:integrate, :default, :clean_debug] do puts ">>> Deploying #{deploy_branch} branch to Github Pages <<<" require 'git' repo = Git.open('.') -- cgit v1.2.1