class Runbook::Configuration

Constants

GlobalConfigFile
ProjectConfigFile
UserConfigFile

Attributes

_airbrussh_context[RW]
enable_sudo_prompt[RW]
ssh_kit[RW]
use_same_sudo_password[R]

Public Class Methods

_load_cli_config() click to toggle source
# File lib/runbook/configuration.rb, line 85
def self._load_cli_config
  if cli_config_file && File.exist?(cli_config_file)
    load(cli_config_file)
  end
end
_load_global_config() click to toggle source
# File lib/runbook/configuration.rb, line 63
def self._load_global_config
  load(GlobalConfigFile) if File.exist?(GlobalConfigFile)
end
_load_project_config() click to toggle source
# File lib/runbook/configuration.rb, line 67
def self._load_project_config
  dir = Dir.pwd
  loop do
    config_path = File.join(dir, ProjectConfigFile)
    if File.exist?(config_path)
      load(config_path)
      return
    end
    break if File.identical?(dir, "/")
    dir = File.join(dir, "..")
  end
end
_load_user_config() click to toggle source
# File lib/runbook/configuration.rb, line 80
def self._load_user_config
  user_config_file = File.join(ENV["HOME"], UserConfigFile)
  load(user_config_file) if File.exist?(user_config_file)
end
cli_config_file() click to toggle source
# File lib/runbook/configuration.rb, line 31
def self.cli_config_file
  @cli_config_file
end
cli_config_file=(cli_config_file) click to toggle source
# File lib/runbook/configuration.rb, line 35
def self.cli_config_file=(cli_config_file)
  @cli_config_file = cli_config_file
end
load_config() click to toggle source
# File lib/runbook/configuration.rb, line 47
def self.load_config
  return if @loaded
  @loaded = true
  _load_global_config
  _load_project_config
  _load_user_config
  _load_cli_config
  # Set defaults
  Runbook.configure
end
loaded() click to toggle source
# File lib/runbook/configuration.rb, line 39
def self.loaded
  @loaded
end
loaded=(loaded) click to toggle source
# File lib/runbook/configuration.rb, line 43
def self.loaded=(loaded)
  @loaded = loaded
end
new() click to toggle source
# File lib/runbook/configuration.rb, line 91
def initialize
  self.ssh_kit = SSHKit.config
  formatter = Airbrussh::Formatter.new(
    $stdout,
    banner: nil,
    command_output: true,
    context: AirbrusshContext,
  )
  ssh_kit.output = formatter
  self._airbrussh_context = formatter.formatters.find do |fmt|
    fmt.is_a?(Airbrussh::ConsoleFormatter)
  end.context
  self.enable_sudo_prompt = true
  self.use_same_sudo_password = true
end
reconfigure() click to toggle source
# File lib/runbook/configuration.rb, line 58
def self.reconfigure
  @loaded = false
  load_config
end

Public Instance Methods

password_cache_key(host) click to toggle source
# File lib/runbook/configuration.rb, line 113
def password_cache_key(host)
  "#{host.user}@#{host.hostname}"
end
use_same_sudo_password=(use_same_pwd) click to toggle source
# File lib/runbook/configuration.rb, line 107
def use_same_sudo_password=(use_same_pwd)
  @use_same_sudo_password = use_same_pwd
  SSHKit::Sudo::InteractionHandler.class_eval do
    if use_same_pwd
      use_same_password!
    else
      def password_cache_key(host)
        "#{host.user}@#{host.hostname}"
      end
    end
  end
end