diff options
author | Ryan Daigle <ryan.daigle@gmail.com> | 2010-01-23 15:47:43 -0500 |
---|---|---|
committer | B Mathis <brandon@imathis.com> | 2010-02-05 09:45:35 -0600 |
commit | 2f415171915482080f8e5c63b53a4a387e4de5b7 (patch) | |
tree | c1bb2c30c5b4d62d7420b93f80b0320b431ad046 | |
parent | de113ecfebf001d1289a595ec1e5af4031034c29 (diff) | |
download | my_new_personal_website-2f415171915482080f8e5c63b53a4a387e4de5b7.tar.xz my_new_personal_website-2f415171915482080f8e5c63b53a4a387e4de5b7.zip |
Update to rakefile to allow working on a single post at a time (and saving regeneration time)
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | Rakefile | 21 |
2 files changed, 22 insertions, 4 deletions
@@ -1,3 +1,4 @@ site -*/.sass-cache -.DS_Store
\ No newline at end of file +.sass-cache +test +source/_stash @@ -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('.') |