Sha256: 187fbe0aa1b3b307b8176e28f660ff963b6f6caeac3621523f142fe13e0f08a5

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

#!/usr/bin/env ruby

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

require 'shining'
include Shining::FileMethods

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

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
  name, extension = name_and_extension(name)
  extension = format if extension.blank?
  preso.new_slide "#{name}.#{extension}", :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

def remove slide
  preso = Shining::Preso.open Dir.pwd
  preso.remove_slide slide
end

figure_what_to_do!

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shining-1.3.4 bin/shine