Module: ThreeScaleToolbox::CLI

Defined in:
lib/3scale_toolbox/cli.rb,
lib/3scale_toolbox/cli/output_flag.rb,
lib/3scale_toolbox/cli/json_printer.rb,
lib/3scale_toolbox/cli/yaml_printer.rb,
lib/3scale_toolbox/cli/error_handler.rb,
lib/3scale_toolbox/cli/custom_table_printer.rb

Defined Under Namespace

Classes: CustomTablePrinter, ErrorHandler, JsonPrinter, PrinterTransformer, YamlPrinter

Class Method Summary collapse

Class Method Details

.add_command(command) ⇒ Object



12
13
14
# File 'lib/3scale_toolbox/cli.rb', line 12

def self.add_command(command)
  root_command.add_subcommand(command)
end

.install_signal_handlersObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/3scale_toolbox/cli.rb', line 20

def self.install_signal_handlers
  # Set exit handler
  # Only OS supported signals
  available_signals = %w[INT TERM].select { |signal_name| Signal.list.key? signal_name }
  available_signals.each do |signal|
    Signal.trap(signal) do
      puts
      exit!(0)
    end
  end

  # Set stack trace dump handler
  if !defined?(RUBY_ENGINE) || RUBY_ENGINE != 'jruby'
    if Signal.list.key? 'USR1'
      Signal.trap('USR1') do
        puts 'Caught USR1; dumping a stack trace'
        puts caller.map { |i| "  #{i}" }.join("\n")
      end
    end
  end
end

.load_builtin_commandsObject



16
17
18
# File 'lib/3scale_toolbox/cli.rb', line 16

def self.load_builtin_commands
  ThreeScaleToolbox::Commands::BUILTIN_COMMANDS.each(&method(:add_command))
end

.output_flag(dsl) ⇒ Object



16
17
18
# File 'lib/3scale_toolbox/cli/output_flag.rb', line 16

def self.output_flag(dsl)
  dsl.option :o, :output, 'Output format. One of: json|yaml', argument: :required, transform: PrinterTransformer.new
end

.root_commandObject



8
9
10
# File 'lib/3scale_toolbox/cli.rb', line 8

def self.root_command
  ThreeScaleToolbox::Commands::ThreeScaleCommand
end

.run(args) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/3scale_toolbox/cli.rb', line 42

def self.run(args)
  install_signal_handlers
  err = ErrorHandler.error_watchdog do
    load_builtin_commands
    ThreeScaleToolbox.load_plugins
    root_command.build_command.run args
  end
  err.nil? ? 0 : 1
end