require "rubygems" require "tmpdir" require "bundler/setup" require "jekyll" # Usage: # rake site:publish -> testing: http://misp.github.io/misp-website # rake publish -> prod: http://www.misp-project.org/ or http://misp.github.io # Testing website GITHUB_TESTING = "MISP/misp-website" # Testing website GITHUB_PROD = "MISP/misp.github.io" desc "Generate blog files" task :generate do Jekyll::Site.new(Jekyll.configuration({ "source" => ".", "destination" => "_site" })).process end desc "Generate and publish blog to gh-pages" task :publish => [:generate] do Dir.mktmpdir do |tmp| cp_r "_site/.", tmp pwd = Dir.pwd Dir.chdir tmp system "git init" system "git add ." message = "Site updated at #{Time.now.utc}" system "git commit -m #{message.inspect}" system "git remote add origin git@github.com:#{GITHUB_PROD}.git" system "git push origin master --force" Dir.chdir pwd end end namespace :site do desc "Generate blog files" task :generate do Jekyll::Site.new(Jekyll.configuration({ "source" => ".", "destination" => "_site" })).process end desc "Generate and publish blog to gh-pages" task :publish => [:generate] do Dir.mktmpdir do |tmp| cp_r "_site/.", tmp pwd = Dir.pwd Dir.chdir tmp system "git init" system "git add ." message = "Site updated at #{Time.now.utc}" system "git commit -m #{message.inspect}" system "git remote add origin git@github.com:#{GITHUB_TESTING}.git" system "git push origin master:refs/heads/gh-pages --force" Dir.chdir pwd end end end