summaryrefslogtreecommitdiff
path: root/lib/oxidized/config/core.rb
blob: c2cde587ff3429971b0cc27e64842e28395070d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
module Oxidized
  require 'ostruct'
  require 'yaml'
  class Config < OpenStruct
    require 'oxidized/config/defaults'
    # @param file [string] configuration file location
    def initialize file=File.join(Config::Root, 'config')
      super()
      @file = file.to_s
    end
    # load config from file or bootstrap with built-ins
    def load
      if File.exists? @file
        marshal_load YAML.load_file @file
      else
        require 'oxidized/config/bootstrap'
      end
    end
    # save config to file
    def save
      File.write @file, YAML.dump(marshal_dump)
    end
  end
  CFG = Config.new
  CFG.load
  Log.file = CFG.log if CFG.log
  Log.level = Logger::INFO unless CFG.debug
end