lib/arborist/command/ack.rb in arborist-0.2.0 vs lib/arborist/command/ack.rb in arborist-0.3.0

- old
+ new

@@ -17,10 +17,13 @@ command :ack do |cmd| cmd.switch :clear, default: false, desc: "Clear the ack instead of setting it.", negatable: false + cmd.switch [ :k, 'keep-going' ], default: false, + desc: "Continue in the event of errors.", + negatable: false cmd.flag [ :u, :user ], desc: "The user to mark the nodes with." cmd.flag [ :m, :message ], desc: "The acknowledgement message." @@ -44,23 +47,28 @@ userid = options[ :user ] || prompt.ask( "Your name?", default: Etc.getpwuid.name ) help_now!( "Unable to determine ack user." ) unless userid identifiers.each do |id| res[ id ] = unless_dryrun( "Acking #{id}...", true ) do - client.ack( - identifier: id, - message: message, - sender: userid, - via: "command line" - ) + begin + client.ack( + identifier: id, + message: message, + sender: userid, + via: "command line" + ) + rescue => err + raise unless options[ 'keep-going' ] + err.message + end end end end res.each_pair do |identifier, result| prompt.say "%s: %s" % [ hl.bold.bright_blue( identifier ), - result == true ? "Okay." : hl.red( res.to_s ) + result == true ? "Okay." : hl.red( res[identifier].to_s ) ] end end end