/usr/share/doc/ruby-mixlib-cli/README.rdoc is in ruby-mixlib-cli 1.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | == Mixlib::CLI
Mixlib::CLI provides a class-based command line option parsing object, like the one used in Chef, Ohai and Relish. To use in your project:
require 'rubygems'
require 'mixlib/cli'
class MyCLI
include Mixlib::CLI
option :config_file,
:short => "-c CONFIG",
:long => "--config CONFIG",
:default => 'config.rb',
:description => "The configuration file to use"
option :log_level,
:short => "-l LEVEL",
:long => "--log_level LEVEL",
:description => "Set the log level (debug, info, warn, error, fatal)",
:required => true,
:proc => Proc.new { |l| l.to_sym }
option :help,
:short => "-h",
:long => "--help",
:description => "Show this message",
:on => :tail,
:boolean => true,
:show_options => true,
:exit => 0
end
# ARGV = [ '-c', 'foo.rb', '-l', 'debug' ]
cli = MyCLI.new
cli.parse_options
cli.config[:config_file] # 'foo.rb'
cli.config[:log_level] # :debug
If you are using this in conjunction with Mixlib::Config, you can do something like this (building on the above definition):
class MyConfig
extend(Mixlib::Config)
log_level :info
config_file "default.rb"
end
class MyCLI
def run(argv=ARGV)
parse_options(argv)
MyConfig.merge!(config)
end
end
c = MyCLI.new
# ARGV = [ '-l', 'debug' ]
c.run
MyConfig[:log_level] # :debug
Available arguments to 'option':
:short:: The short option, just like from optparse. Example: "-l LEVEL"
:long:: The long option, just like from optparse. Example: "--level LEVEL"
:description:: The description for this item, just like from optparse.
:default:: A default value for this option
:required:: Prints a message informing the user of the missing requirement, and exits. Default is false.
:on:: Set to :tail to appear at the end, or :head to appear at the top.
:boolean:: If this option takes no arguments, set this to true.
:show_options:: If you want the option list printed when this option is called, set this to true.
:exit:: Exit your program with the exit code when this option is specified. Example: 0
:proc:: If set, the configuration value will be set to the return value of this proc.
=== New in 1.2.2
:required works, and we now support Ruby-style boolean option negation
(e.g. '--no-cookie' will set 'cookie' to false if the option is boolean)
=== New in 1.2.0
We no longer destructively manipulate ARGV.
Have fun!
|