summaryrefslogtreecommitdiff
path: root/lib/oxidized/output
diff options
context:
space:
mode:
authorSaku Ytti <saku@ytti.fi>2014-04-14 16:28:23 +0300
committerSaku Ytti <saku@ytti.fi>2014-04-14 16:28:23 +0300
commit57a8f4bc04b4f87ad0d7028dcbf29b96d49eaffd (patch)
tree82567c791b0114e62fa3b978eb2bb95733d6488b /lib/oxidized/output
parent1a1794b2b3ac99764852546c550fd7988f84c37b (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.rb15
-rw-r--r--lib/oxidized/output/git.rb23
-rw-r--r--lib/oxidized/output/output.rb1
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 }