summaryrefslogtreecommitdiff
path: root/lib/oxidized/config/core.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/config/core.rb')
-rw-r--r--lib/oxidized/config/core.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/oxidized/config/core.rb b/lib/oxidized/config/core.rb
new file mode 100644
index 0000000..6c91920
--- /dev/null
+++ b/lib/oxidized/config/core.rb
@@ -0,0 +1,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