penchant/bin/penchant
2011-08-19 14:04:13 -04:00

56 lines
1.3 KiB
Ruby
Executable File

#!/usr/bin/env ruby
require 'rubygems'
require 'thor'
require 'penchant'
class PenchantCLI < Thor
include Thor::Actions
source_root File.expand_path('../..', __FILE__)
desc "install", "Copy the common scripts to the project"
method_options :dir => 'script'
def install
directory 'template/script', options[:dir]
Dir[File.join(options[:dir], '**/*')].each { |file| File.chmod(0755, file) }
end
desc "convert", "Make an existing project Penchant-isized"
method_options :dir => 'script'
def convert
install
copy_file 'Gemfile', 'Gemfile.erb'
remove_file 'Gemfile'
gemfile(:remote)
end
desc "gemfile ENV", "Switch the gemfile environment, or rebuild the current environment if not given"
def gemfile(env = get_current_env)
if env
puts "[penchant] Rebunding for #{env} environment..."
!Penchant::Gemfile.do_full_env_switch!(env)
end
gemfile = Penchant::Gemfile.new
if !gemfile.has_gemfile?
puts "No Gemfile or Gemfile.erb, exiting."
exit 1
end
system %{bundle}
end
desc "gemfile-env", "Get the gemfile environment"
def gemfile_env
puts get_current_env
end
no_tasks do
def get_current_env
gemfile = Penchant::Gemfile.new
gemfile.environment
end
end
end
PenchantCLI.start