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