Sha256: 65b8141b4993885c9f104ba24193cd8af759cbb36081fb0b7bd96ceb01063533

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

#!/usr/bin/env ruby

$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')

require 'shining'

ACTIONS   = {
  :new_on!            => ['build'],
  :new_slide!         => ['slide'],
  :compile_templates! => ['compile'],
  :play               => ['play', 'go'],
  :deploy             => ['deploy']
}

def bail! reason
  Shining.error reason
  exit -2
end

def figure_what_to_do!
  help_and_exit! if ARGV.empty?
  if ACTIONS.values.flatten.include? ARGV.first
    action = ACTIONS.select { |action, args| args.include? ARGV.first }.flatten.first
    send action, *ARGV[1..(ARGV.length - 1)]
  else
    new_on! ARGV.first
  end
end

def help_and_exit!
  STDERR.puts <<-HELP
Shine - Generates a new Shining presentation
  Usage:
    shine <directory>
  Example:
    shine mycoolpreso
  HELP
  exit -1
end

def new_on! dir
  Shining::Preso.new dir
end

def new_slide! name, format = 'html'
  preso = Shining::Preso.open Dir.pwd
  preso.new_slide "#{name}.#{format}", :with => ['styles', 'script']
end

def compile_templates!
  preso = Shining::Preso.open Dir.pwd
  preso.compile_templates!
end

def play
  preso = Shining::Preso.open Dir.pwd
  player = Shining::Player.new preso
  player.go!
end

def deploy name = nil
  preso = Shining::Preso.open Dir.pwd
  Shining::Heroku.deploy preso, name
end

figure_what_to_do!

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shining-1.3.3 bin/shine
shining-1.3.2 bin/shine
shining-1.3.1 bin/shine
shining-1.3.0 bin/shine