class Kaiser::Config

Attributes

config[R]
config_dir[R]
config_file[R]
info_out[RW]
kaiserfile[R]
out[RW]
work_dir[R]

Public Class Methods

always_verbose?() click to toggle source
# File lib/kaiser/config.rb, line 48
def always_verbose?
  @config[:always_verbose]
end
load(work_dir) click to toggle source
# File lib/kaiser/config.rb, line 17
def load(work_dir)
  @work_dir = work_dir
  @config_dir = "#{ENV['HOME']}/.kaiser"

  FileUtils.mkdir_p @config_dir
  @config_file = "#{@config_dir}/.config.yml"
  @kaiserfile = Kaiserfile.new("#{@work_dir}/Kaiserfile")

  @config = {
    envnames: {},
    envs: {},
    networkname: 'kaiser_net',
    shared_names: {
      redis: 'kaiser-redis',
      nginx: 'kaiser-nginx',
      chrome: 'kaiser-chrome',
      dns: 'kaiser-dns',
      certs: 'kaiser-certs'
    },
    largest_port: 9000,
    always_verbose: false
  }

  load_config

  alt_kaiserfile = "#{ENV['HOME']}/kaiserfiles/Kaiserfile.#{@config[:envnames][work_dir]}"
  @kaiserfile = Kaiserfile.new(alt_kaiserfile) if File.exist?(alt_kaiserfile)

  @config
end
load_config() click to toggle source
# File lib/kaiser/config.rb, line 52
def load_config
  loaded = YAML.load_file(@config_file) if File.exist?(@config_file)

  config_shared_names = @config[:shared_names] if @config
  loaded_shared_names = loaded[:shared_names] if loaded

  @config = {
    **(@config || {}),
    **(loaded || {}),
    shared_names: { **(config_shared_names || {}), **(loaded_shared_names || {}) }
  }
end