class Herdsman::CLI

Public Instance Methods

status() click to toggle source
# File lib/herdsman/cli.rb, line 14
def status
  cmd = Herdsman::Command::Status.new(herd: herd, logger: logger)
  result = cmd.run
  exit result
end
version() click to toggle source
# File lib/herdsman/cli.rb, line 22
def version
  puts "Herdsman version #{Herdsman::VERSION}"
end

Private Instance Methods

config() click to toggle source
# File lib/herdsman/cli.rb, line 28
def config
  path = File.expand_path('herdsman.yml', Dir.pwd)
  Herdsman::Config.new(path, config_overrides)
rescue
  $stderr.puts "ERROR: #{$!.message}"
  exit 1
end
config_overrides() click to toggle source
# File lib/herdsman/cli.rb, line 36
def config_overrides
  overridable_options = %w(fetch_cache revision)
  options.select { |key, _| overridable_options.include? key }
end
env() click to toggle source
# File lib/herdsman/cli.rb, line 41
def env
  Herdsman::Environment.new
end
herd() click to toggle source
# File lib/herdsman/cli.rb, line 45
def herd
  Herdsman::Herd.new(env, config, herd_members(config.repos))
end
herd_members(repos) click to toggle source
# File lib/herdsman/cli.rb, line 59
def herd_members(repos)
  repos.map do |herd_member_config|
    Herdsman::HerdMember.new(
      Herdsman::GitRepo.new(env, herd_member_config.path),
      herd_member_config,
    )
  end
end
logger() click to toggle source
# File lib/herdsman/cli.rb, line 49
def logger
  writer = Logger.new(STDOUT)
  writer.formatter = proc do |severity, _, _, msg|
    "#{severity.upcase}: #{msg}\n"
  end
  logger = Herdsman::LogAdapter.new(writer)
  logger.adjust_verbosity(quiet: options[:quiet])
  logger
end