Module: Aptible::CLI::Subcommands::SSH
- Included in:
- Agent
- Defined in:
- lib/aptible/cli/subcommands/ssh.rb
Class Method Summary collapse
-
.included(thor) ⇒ Object
rubocop:disable MethodLength.
Class Method Details
.included(thor) ⇒ Object
rubocop:disable MethodLength
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 |
# File 'lib/aptible/cli/subcommands/ssh.rb', line 8 def self.included(thor) thor.class_eval do include Helpers::Operation include Helpers::App desc 'ssh [COMMAND]', 'Run a command against an app' long_desc <<-LONGDESC Runs an interactive command against a remote Aptible app If specifying an app, invoke via: aptible ssh [--app=APP] COMMAND LONGDESC option :app def ssh(*args) app = ensure_app() host = app.account.bastion_host port = app.account.bastion_port ENV['ACCESS_TOKEN'] = fetch_token ENV['APTIBLE_COMMAND'] = command_from_args(*args) ENV['APTIBLE_APP'] = app.handle opts = " -o 'SendEnv=*' -o StrictHostKeyChecking=no " \ '-o UserKnownHostsFile=/dev/null' Kernel.exec "ssh #{opts} -p #{port} root@#{host}" end private def command_from_args(*args) args.empty? ? '/bin/bash' : Shellwords.join(args) end end end |