class Kontena::Plugin::Shell::KontenaCommand
Public Instance Methods
cmd()
click to toggle source
# File lib/kontena/plugin/shell/commands/kontena.rb, line 15 def cmd cmd = Kontena::MainCommand.new('') cmdline = context.to_a + args cmdline.shift if cmdline.first == 'kontena' cmd.parse(cmdline) cmd end
execute()
click to toggle source
# File lib/kontena/plugin/shell/commands/kontena.rb, line 23 def execute if cmd.subcommand_name && cmd.subcommand_name == 'shell' puts Kontena.pastel.red("Already running inside KOSH") else cmd.run([]) end rescue Clamp::HelpWanted => ex if args.include?('--help') || args.include?('-h') puts subcommand_class.help('') else context.concat(args) end rescue SystemExit => ex puts Kontena.pastel.red('[Command exited with error]') unless ex.status.zero? rescue => ex puts Kontena.pastel.red("ERROR: #{ex.message}") ensure Thread.main['spinners'] && Thread.main['spinners'].map(&:kill) && Thread.main['spinners'] = nil end
subcommand_class()
click to toggle source
# File lib/kontena/plugin/shell/commands/kontena.rb, line 43 def subcommand_class (context + args).reject { |t| t.start_with?('-') }.inject(Kontena::MainCommand) do |base, token| if base.has_subcommands? sc = base.recognised_subcommands.find { |sc| sc.names.include?(token) } sc ? sc.subcommand_class : base else base end end end