class Opsup::CLI
Public Class Methods
create()
click to toggle source
# File lib/opsup/cli.rb, line 12 def self.create new( app: Opsup::App.create, option_builder: Opsup::CLI::OptionBuilder.create, env_vars: ENV.to_h, ) end
new(app:, option_builder:, env_vars:)
click to toggle source
# File lib/opsup/cli.rb, line 27 def initialize(app:, option_builder:, env_vars:) @app = T.let(app, Opsup::App) @option_builder = T.let(option_builder, Opsup::CLI::OptionBuilder) @env_vars = T.let(env_vars, T::Hash[String, T.nilable(String)]) end
Public Instance Methods
run(argv)
click to toggle source
# File lib/opsup/cli.rb, line 34 def run(argv) parser = create_parser @option_builder.define_options(parser) options = @option_builder.options_from_env_vars(@env_vars) begin # It automatically exits with a help message if necessary. commands = parser.parse(argv, into: options) rescue OptionParser::MissingArgument => e puts e.message return false end begin config = @option_builder.generate_config(options) @app.run(commands, config) rescue Opsup::Error => e puts "Error: #{e.message}" return false end true end
Private Instance Methods
create_parser()
click to toggle source
# File lib/opsup/cli.rb, line 59 def create_parser # ref: https://docs.ruby-lang.org/en/2.1.0/OptionParser.html OptionParser.new do |p| p.version = Opsup::VERSION p.on_head(<<~HEAD) CLI to run Chef commands easily for your OpsWorks stacks. Usage: opsup [options] [commands...] Commands: #{@app.available_commands.join(', ')} Example: opsup -s stack-name deploy Options: HEAD p.on_tail(<<~TAIL) Environment variables: You can also specify options via environment variables with the prefix 'OPSUP_'. For example: OPSUP_STACK, OPSUP_AWS_CRED, and so on. TAIL end end