examples/subcommands/cli/update.rb
require 'command_kit/command'
module Foo
class CLI
#
# The `update` sub-command.
#
class Update < CommandKit::Command
usage '[options] [NAME]'
option :quiet, short: '-q',
desc: 'Suppresses logging messages'
argument :name, required: false,
desc: 'Optional name to update'
description 'Updates an item or all items'
ITEMS = %w[foo bar baz]
#
# Runs the `update` sub-command.
#
# @param [String, nil] name
# The optional name argument.
#
def run(name=nil)
if name
unless ITEMS.include?(name)
print_error "unknown item: #{name}"
exit(1)
end
puts "Updating #{name} ..." unless options[:quiet]
sleep 1
puts "Item #{name} updated." unless options[:quiet]
else
puts "Updating ..." unless options[:quiet]
sleep 2
puts "All items updated." unless options[:quiet]
end
end
end
end
end