aboutsummaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
authorRyan Daigle <ryan.daigle@gmail.com>2010-01-23 15:47:43 -0500
committerB Mathis <brandon@imathis.com>2010-02-05 09:45:35 -0600
commit2f415171915482080f8e5c63b53a4a387e4de5b7 (patch)
treec1bb2c30c5b4d62d7420b93f80b0320b431ad046 /Rakefile
parentde113ecfebf001d1289a595ec1e5af4031034c29 (diff)
downloadmy_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)
Diffstat (limited to '')
-rw-r--r--Rakefile21
1 files changed, 19 insertions, 2 deletions
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('.')