diff options
author | Saku Ytti <saku@ytti.fi> | 2014-04-14 16:28:23 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2014-04-14 16:28:23 +0300 |
commit | 57a8f4bc04b4f87ad0d7028dcbf29b96d49eaffd (patch) | |
tree | 82567c791b0114e62fa3b978eb2bb95733d6488b /lib/oxidized/output | |
parent | 1a1794b2b3ac99764852546c550fd7988f84c37b (diff) |
Use 'asetus' for configuration files
Main benefits
a) we get support for system wide configs
b) we don't use symbols in config file, they're confusing to
non-rubyist
Diffstat (limited to 'lib/oxidized/output')
-rw-r--r-- | lib/oxidized/output/file.rb | 15 | ||||
-rw-r--r-- | lib/oxidized/output/git.rb | 23 | ||||
-rw-r--r-- | lib/oxidized/output/output.rb | 1 |
3 files changed, 19 insertions, 20 deletions
diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index ee8a9a6..f3443b4 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -3,20 +3,19 @@ class OxFile < Output require 'fileutils' def initialize - @cfg = CFG.output[:file] + @cfg = CFG.output.file end def setup - if not @cfg - CFG.output[:file] = { - :directory => File.join(Config::Root, 'configs') - } - CFG.save + if @cfg.empty? + CFGS.user.output.file.directory = File.join(Config::Root, 'configs') + CFGS.save :user + raise NoConfig, 'no output file config, edit ~/.config/oxidized/config' end end def store node, data, opt={} - file = @cfg[:directory] + file = @cfg.directory if opt[:group] file = File.join File.dirname(file), opt[:group] end @@ -26,7 +25,7 @@ class OxFile < Output end def fetch node, group - cfg_dir = @cfg[:directory] + cfg_dir = @cfg.directory if group # group is explicitly defined by user IO.readlines File.join(cfg_dir, group, node) else diff --git a/lib/oxidized/output/git.rb b/lib/oxidized/output/git.rb index b4fa4a8..ff9237b 100644 --- a/lib/oxidized/output/git.rb +++ b/lib/oxidized/output/git.rb @@ -5,25 +5,24 @@ class Git < Output include Grit def initialize - @cfg = CFG.output[:git] + @cfg = CFG.output.git end def setup - if not @cfg - CFG.output[:git] = { - :user => 'Oxidized', - :email => 'o@example.com', - :repo => File.join(Config::Root, 'oxidized.git') - } - CFG.save + if @cfg.empty? + CFGS.user.output.git.user = 'Oxidized' + CFGS.user.output.git.email = 'o@example.com' + CFGS.user.output.git.repo = File.join(Config::Root, 'oxidized.git') + CFGS.save :user + raise NoConfig, 'no output git config, edit ~/.config/oxidized/config' end end def store file, data, opt={} msg = opt[:msg] - user = (opt[:user] or @cfg[:user]) - email = (opt[:email] or @cfg[:email]) - repo = @cfg[:repo] + user = (opt[:user] or @cfg.user) + email = (opt[:email] or @cfg.email) + repo = @cfg.repo if opt[:group] repo = File.join File.dirname(repo), opt[:group] + '.git' end @@ -41,7 +40,7 @@ class Git < Output def fetch node, group begin - repo = Repo.new(@cfg[:repo]) + repo = Repo.new(@cfg.repo) (repo.tree / node).data rescue 'node not found' diff --git a/lib/oxidized/output/output.rb b/lib/oxidized/output/output.rb index 61cb2b5..54d616c 100644 --- a/lib/oxidized/output/output.rb +++ b/lib/oxidized/output/output.rb @@ -1,5 +1,6 @@ module Oxidized class Output + class NoConfig < OxidizedError; end class << self def inherited klass Oxidized.mgr.loader = { :class => klass } |