Class: FlatKit::Cli
- Inherits:
-
Object
- Object
- FlatKit::Cli
- Defined in:
- lib/flat_kit/cli.rb
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ Cli
constructor
A new instance of Cli.
- #parser ⇒ Object
- #run(argv: ARGV, env: ENV) ⇒ Object
Constructor Details
#initialize ⇒ Cli
Returns a new instance of Cli.
8 9 10 |
# File 'lib/flat_kit/cli.rb', line 8 def initialize @parser = nil end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
6 7 8 |
# File 'lib/flat_kit/cli.rb', line 6 def end |
Class Method Details
.commands_banner ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/flat_kit/cli.rb', line 42 def self. sorted_commands = FlatKit::Command.children.sort_by{ |c| c.name } left_width = sorted_commands.map { |c| c.name.length }.sort.last = StringIO.new .puts .puts "Commands:" .puts sorted_commands.each do |command| .puts " #{command.name.ljust(left_width)} #{command.description}" end .string end |
Instance Method Details
#parser ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/flat_kit/cli.rb', line 12 def parser @parser ||= ::Optimist::Parser.new do version ::FlatKit::VERSION "fk v#{self.version}" "\n Usage:\n fk <command> [<args>...]\n fk [options]\n USAGE\n\n banner <<~OPTIONS\n\n Options:\n\n OPTIONS\n\n opt :verbose, \"Force debug. Output lots of informtion to standard error\", default: false\n opt :list, \"List all the commands\", default: false, short: :none\n opt :log, \"Set the logger output location\", default: \"<stderr>\", short: :none\n opt :help, \"Show help message\", short: :h\n opt :version, \"Print version and exit\", short: :none\n\n stop_on FlatKit::Command.names\n banner Cli.commands_banner\n end\nend\n" |
#run(argv: ARGV, env: ENV) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/flat_kit/cli.rb', line 56 def run(argv: ARGV, env: ENV) opts = ::Optimist::with_standard_exception_handling(parser) do parser.parse(argv) end if opts[:log_given] then ::FlatKit.log_to(opts[:log]) end if opts[:verbose] then ::FlatKit.logger.level = :debug else ::FlatKit.logger.level = :info end ::FlatKit.logger.debug opts ::FlatKit.logger.debug argv command_name = argv.shift command_klass = FlatKit::Command.for(command_name) command = command_klass.new(argv: argv, logger: ::FlatKit.logger, env: env) command.call end |