bin/sprinkle in sprinkle-0.4.2 vs bin/sprinkle in sprinkle-0.5.0.rc1

- old
+ new

@@ -18,11 +18,14 @@ ARGV.each do |arg| ENV[$1] = $2 if arg =~ /^(\w+)=(.*)$/ end +require File.dirname(__FILE__) + '/../lib/sprinkle/version' + parser = OptionParser.new do |opts| + opts.version = Sprinkle::Version opts.banner = <<BANNER Sprinkle ======== http://github.com/crafterm/sprinkle @@ -42,10 +45,12 @@ Options are: BANNER opts.separator "" opts.on("-s", "--script=PATH", String, "Path to a sprinkle script to run") { |v| OPTIONS[:path] = v } + opts.on("--only [ROLE]", String, + "Only run sprinkle policies for the specified role") { |v| OPTIONS[:only_role] = v } opts.on("-t", "--test", "Process but don't perform any actions") { |v| OPTIONS[:testing] = v } opts.on("-v", "--verbose", "Verbose output") { |v| OPTIONS[:verbose] = v } opts.on("-c", "--cloud", @@ -59,10 +64,16 @@ if MANDATORY_OPTIONS && MANDATORY_OPTIONS.find { |option| OPTIONS[option.to_sym].nil? } puts opts; exit end end +def only_role(options) + role=OPTIONS[:only_role] + Sprinkle::OPTIONS[:only_role] = role + puts "Only running policies for :#{role}" +end + def force_mode(options) Sprinkle::OPTIONS[:force] = OPTIONS[:force] || false end def operation_mode(options) @@ -76,11 +87,12 @@ def verbosity(options) Sprinkle::OPTIONS[:verbose] = OPTIONS[:verbose] || false end def log_level(options) - Object.logger.level = ActiveSupport::BufferedLogger::Severity::DEBUG if options[:verbose] + severity = ActiveSupport::BufferedLogger::Severity + Object.logger.level = options[:verbose] ? severity::DEBUG : severity::INFO end require File.dirname(__FILE__) + '/../lib/sprinkle' powder = OPTIONS[:path] @@ -89,7 +101,8 @@ force_mode(OPTIONS) operation_mode(OPTIONS) powder_cloud(OPTIONS) log_level(OPTIONS) verbosity(OPTIONS) +only_role(OPTIONS) Sprinkle::Script.sprinkle File.read(powder), powder