bin/screwcap in screwcap-0.3.5 vs bin/screwcap in screwcap-0.5
- old
+ new
@@ -2,18 +2,18 @@
require 'rubygems'
require File.expand_path(File.dirname(__FILE__) + '/../lib/screwcap')
require File.expand_path(File.dirname(__FILE__) + '/../lib/trollop')
-
p = Trollop::Parser.new do
- opt :silent, "Be silent"
+ opt :silent, "Be silent", :short => "s"
opt :nocolor, "Do not color output"
- opt :debug, "Turn on debugger. Will print full stacktrace if an exeception was raised"
- opt :help, "Show this message"
- opt :tasks, "Display available tasks in recipe file"
- opt :setup_rails, "Setup a rails app to use screwcap"
+ opt :debug, "Turn on debugger. Will print full stacktrace if an exeception was raised", :short => "d"
+ opt :help, "Show this message", :short => "h"
+ opt :tasks, "Display available tasks in recipe file", :short => "t"
+ opt :setup_rails, "Setup a rails app to use screwcap", :short => "r"
+ opt :dry_run, "Setup a rails app to use screwcap", :short => "n"
version <<-EOF
Screwcap #{Screwcap::VERSION} by Grant Ammons (grant@pipelinedeals.com)
More info at http://gammons.github.com/screwcap
EOF
banner <<-EOF
@@ -29,30 +29,45 @@
Debugger.start
end
if opts[:tasks] == true
recipe_file = ARGV.shift
- deployer = Deployer.new(opts.merge(:recipe_file => recipe_file))
+ deployer = TaskManager.new(opts.merge(:recipe_file => recipe_file))
$stdout << "Tasks Available:\n" if deployer.__tasks.size > 0
deployer.__tasks.map {|t| t.__name }.each {|name| $stdout << " #{name}\n" }
$stdout << "Sequences Available:\n" if deployer.__sequences.size > 0
deployer.__sequences.map {|t| t.__name }.each {|name| $stdout << " #{name}\n" }
exit
end
+ if opts[:dry_run] == true
+ recipe_file = ARGV.shift
+ deployer = TaskManager.new(opts.merge(:recipe_file => recipe_file))
+ ARGV.map {|a| a.to_sym }.each do |tname|
+ task = deployer.__tasks.find {|t| t.__name == tname }
+ raise(Screwcap::TaskNotFound, "Could not find task named '#{tname}' in the recipe file.") if task.nil?
+ $stdout << "\n*** BEGIN dry-run task #{task.__name}\n"
+ task.__commands.each do |cmd|
+ $stdout << " I: (dry-run): #{cmd[:command]}\n"
+ end
+ $stdout << "*** END dry-run task #{task.__name}\n"
+ end
+ exit
+ end
+
if opts[:setup_rails] == true
- Deployer.new(:recipe_file => File.expand_path(File.dirname(__FILE__) + "/../recipes/setup_rails.rb")).run! :setup_rails
+ TaskManager.new(:recipe_file => File.expand_path(File.dirname(__FILE__) + "/../recipes/setup_rails.rb")).run! :setup_rails
$stdout << "\nYour rails app now has a sample recipe, ready for the editing, in config/screwcap/recipe.rb\n"
$stdout << "Your recipes will be automatically available in rake. Screwcap uses the :remote namespace.\n"
$stdout << "To see what recipes you can run, type 'rake -T remote'.\n"
$stdout << "Please visit http://gammons.github.com/screwcap for help.\n"
exit
end
raise Trollop::HelpNeeded if ARGV.size < 2
recipe_file = ARGV.shift
begin
- Deployer.new(opts.merge(:recipe_file => recipe_file)).run! ARGV.map {|a| a.to_sym }
+ TaskManager.new(opts.merge(:recipe_file => recipe_file)).run! ARGV.map {|a| a.to_sym }
rescue Exception => e
raise e if opts[:debug] == true
$stderr << e
$stderr << "\n"
end