#!/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