module Aptly::Watcher::Config

Public Class Methods

parse(config_file) click to toggle source
# File lib/aptly/watcher/config.rb, line 9
def parse(config_file)
  raise ArgumentError, "Config file not found: #{config_file}" unless File.exist?(config_file)
  config = YAML.load_file(config_file)
  valid_config!(config)
  config = parse_tildes(config)
  config[:aptly] = parse_aptly_conf(config[:conf])
  config
end
parse_aptly_conf(conf) click to toggle source

Load the aptly config

# File lib/aptly/watcher/config.rb, line 38
def parse_aptly_conf(conf)
  raise ArgumentError, "Aptly config file does not exist: #{conf}" unless File.exist? conf
  JSON.parse(File.read(conf))
end
parse_tildes(config) click to toggle source

Parse any tildes into the full home path

# File lib/aptly/watcher/config.rb, line 29
def parse_tildes(config)
  [:pidfile, :conf, :incoming_dir, :log].each do |key|
    config[key].sub! /~/, ENV['HOME']
  end

  config
end
valid_config!(config) click to toggle source
# File lib/aptly/watcher/config.rb, line 18
def valid_config!(config)
  raise ArgumentError, "Config file was empty"              unless config
  raise ArgumentError, "Config file missing :pidfile:"      unless config[:pidfile]
  raise ArgumentError, "Config file missing :conf:"         unless config[:conf]
  raise ArgumentError, "Config file missing :log:"          unless config[:log]
  raise ArgumentError, "Config file missing :repos:"        unless config[:repos]
  raise ArgumentError, "Config file missing :distrib:"      unless config[:distrib]
  raise ArgumentError, "Config file missing :incoming_dir:" unless config[:incoming_dir]
end