Module: Kontena

Defined in:
lib/kontena_cli.rb,
lib/kontena/util.rb,
lib/kontena/client.rb,
lib/kontena/errors.rb,
lib/kontena/cli/common.rb,
lib/kontena/cli/config.rb,
lib/kontena/cli/spinner.rb,
lib/kontena/cli/version.rb,
lib/kontena/light_prompt.rb,
lib/kontena/stacks_cache.rb,
lib/kontena/stacks_client.rb,
lib/kontena/machine/common.rb,
lib/kontena/plugin_manager.rb,
lib/kontena/cli/bytes_helper.rb,
lib/kontena/cli/grid_options.rb,
lib/kontena/debug_instrumentor.rb,
lib/kontena/machine/cert_helper.rb,
lib/kontena/machine/random_name.rb,
lib/kontena/cli/localhost_web_server.rb,
lib/kontena/cli/master/config_command.rb,
lib/kontena/cli/services/services_helper.rb,
lib/kontena/machine/cloud_config/node_generator.rb,
lib/kontena/callbacks/master/deploy/90_proptip_after_deploy.rb,
lib/kontena/callbacks/master/deploy/04_default_master_version.rb,
lib/kontena/callbacks/master/deploy/01_show_logo_before_deploy.rb,
lib/kontena/callbacks/master/deploy/70_invite_self_after_deploy.rb,
lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb,
lib/kontena/callbacks/auth/01_list_and_select_grid_after_master_auth.rb,
lib/kontena/callbacks/master/01_clear_current_master_after_terminate.rb,
lib/kontena/callbacks/master/deploy/55_create_initial_grid_after_deploy.rb,
lib/kontena/callbacks/master/deploy/56_set_server_provider_after_deploy.rb,
lib/kontena/callbacks/master/deploy/05_before_deploy_configuration_wizard.rb,
lib/kontena/callbacks/master/deploy/40_install_ssl_certificate_after_deploy.rb,
lib/kontena/callbacks/master/deploy/60_configure_auth_provider_after_deploy.rb

Defined Under Namespace

Modules: Callbacks, Cli, Errors, Machine, Util Classes: Callback, Client, Command, DebugInstrumentor, LightPrompt, LocalhostWebServer, MainCommand, PluginManager, StacksCache, StacksClient

Class Method Summary collapse

Class Method Details

.browserless? ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/kontena_cli.rb', line 44

def self.browserless?
  !!(RUBY_PLATFORM =~ /linux|(?:free|net|open)bsd|solaris|aix|hpux/ && ENV['DISPLAY'].to_s.empty?)
end

.cli_root(*joinables) ⇒ Object



83
84
85
86
87
88
89
# File 'lib/kontena_cli.rb', line 83

def self.cli_root(*joinables)
  if joinables.empty?
    File.join(Kontena.root, 'lib/kontena/cli')
  else
    File.join(Kontena.root, 'lib/kontena/cli', *joinables)
  end
end

.minor_version ⇒ String

Returns x.y.

Returns:



32
33
34
# File 'lib/kontena_cli.rb', line 32

def self.minor_version
  Kontena::Cli::VERSION.split('.')[0..1].join('.')
end

.on_windows? ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/kontena_cli.rb', line 40

def self.on_windows?
  ENV['OS'] == 'Windows_NT' && RUBY_PLATFORM !~ /cygwin/
end

.pastel ⇒ Object



52
53
54
# File 'lib/kontena_cli.rb', line 52

def self.pastel
  @pastel ||= Pastel.new(enabled: !simple_terminal?)
end

.prompt ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/kontena_cli.rb', line 56

def self.prompt
  return @prompt if @prompt
  if simple_terminal?
    require_relative 'kontena/light_prompt'
    klass = Kontena::LightPrompt
  else
    require 'tty-prompt'
    klass = TTY::Prompt
  end

  @prompt = klass.new(
    active_color: :cyan,
    help_color: :white,
    error_color: :red,
    interrupt: :exit,
    prefix: pastel.green('> ')
  )
end

.reset_prompt ⇒ Object



75
76
77
# File 'lib/kontena_cli.rb', line 75

def self.reset_prompt
  @prompt = nil
end

.root ⇒ Object



79
80
81
# File 'lib/kontena_cli.rb', line 79

def self.root
  File.dirname(__dir__)
end

.run(*cmdline, returning: :status) ⇒ Fixnum

Run a kontena command like it was launched from the command line.

Examples:

Kontena.run("grid list --help")

Parameters:

Returns:

  • (Fixnum) —

    exit_code



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/kontena_cli.rb', line 9

def self.run(*cmdline, returning: :status)
  if cmdline.first.kind_of?(Array)
    command = cmdline.first
  elsif cmdline.size == 1 && cmdline.first.include?(' ')
    command = cmdline.first.shellsplit
  else
    command = cmdline
  end
  ENV["DEBUG"] && puts("Running Kontena.run(#{command.inspect}, returning: #{returning}")
  result = Kontena::MainCommand.new(File.basename(__FILE__)).run(command)
  ENV["DEBUG"] && puts("Command completed, result: #{result.inspect} status: 0")
  return 0 if returning == :status
  return result if returning == :result
rescue SystemExit => ex
  ENV["DEBUG"] && $stderr.puts("Command completed with failure, result: #{result.inspect} status: #{ex.status}")
  returning == :status ? $!.status : nil
rescue => ex
  ENV["DEBUG"] && $stderr.puts("Command raised #{ex} with message: #{ex.message}\n#{ex.backtrace.join("\n  ")}")
  returning == :status ? 1 : nil
end

.simple_terminal? ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/kontena_cli.rb', line 48

def self.simple_terminal?
  ENV['KONTENA_SIMPLE_TERM'] || !$stdout.tty?
end

.version ⇒ Object



36
37
38
# File 'lib/kontena_cli.rb', line 36

def self.version
  "kontena-cli/#{Kontena::Cli::VERSION}"
end