Sha256: a4f17a721116e240da5e5b066d7ee74c65e61e5f7bff7c976614745cb524b65b

Contents?: true

Size: 1.54 KB

Versions: 19

Compression:

Stored size: 1.54 KB

Contents

require 'nanoc/tasks'
require 'fileutils'

desc "Compile the site"
task :compile do
  `nanoc compile`
end

desc "Remove the output dir"
task :remove_output_dir do
  FileUtils.rm_r('output') if File.exist?('output')
end

def commit_message
  publish_emojis = [':boom:', ':rocket:', ':metal:', ':bulb:', ':zap:',
    ':sailboat:', ':gift:', ':ship:', ':shipit:', ':sparkles:', ':rainbow:']
  default_message = "P U B L I S H #{publish_emojis.sample}"

  print "Enter a commit message (default: '#{default_message}'): "
  STDOUT.flush
  mesg = STDIN.gets.chomp.strip

  mesg = default_message if mesg == ''
  mesg.gsub(/'/, '') # Allow this to be handed off via -m '#{message}'
end

desc "Publish to http://styleguide.bookingsync.com"
task :publish => [:clean, :remove_output_dir] do
  mesg = commit_message

  sh "nanoc compile"

  ENV['GIT_DIR'] = File.expand_path(`git rev-parse --git-dir`.chomp)
  old_sha = `git rev-parse refs/remotes/origin/gh-pages`.chomp
  Dir.chdir('output') do
    ENV['GIT_INDEX_FILE'] = gif = '/tmp/dev.gh.i'
    ENV['GIT_WORK_TREE'] = Dir.pwd
    File.unlink(gif) if File.file?(gif)
    `git add -A`
    tsha = `git write-tree`.strip
    puts "Created tree   #{tsha}"
    if old_sha.size == 40
      csha = `git commit-tree #{tsha} -p #{old_sha} -m '#{mesg}'`.strip
    else
      csha = `git commit-tree #{tsha} -m '#{mesg}'`.strip
    end
    puts "Created commit #{csha}"
    puts `git show #{csha} --stat`
    puts "Updating gh-pages from #{old_sha}"
    `git update-ref refs/heads/gh-pages #{csha}`
    `git push origin gh-pages`
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
bootstrap-bookingsync-sass-3.0.0 docs/Rakefile
bootstrap-bookingsync-sass-2.0.0 docs/Rakefile
bootstrap-bookingsync-sass-1.0.5 docs/Rakefile
bootstrap-bookingsync-sass-1.0.4 docs/Rakefile
bootstrap-bookingsync-sass-1.0.3 docs/Rakefile
bootstrap-bookingsync-sass-1.0.2 docs/Rakefile
bootstrap-bookingsync-sass-1.0.1 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta12 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta11 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta10 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta9 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta8 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta7 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta6 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta5 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta4 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta3 docs/Rakefile
bootstrap-bookingsync-sass-1.0.0.beta1 docs/Rakefile