summaryrefslogtreecommitdiff
path: root/lib/oxidized/source/csv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/source/csv.rb')
-rw-r--r--lib/oxidized/source/csv.rb89
1 files changed, 44 insertions, 45 deletions
diff --git a/lib/oxidized/source/csv.rb b/lib/oxidized/source/csv.rb
index b61525e..ae1c0a9 100644
--- a/lib/oxidized/source/csv.rb
+++ b/lib/oxidized/source/csv.rb
@@ -1,54 +1,53 @@
module Oxidized
-class CSV < Source
- def initialize
- @cfg = Oxidized.config.source.csv
- super
- end
-
- def setup
- if @cfg.empty?
- Oxidized.asetus.user.source.csv.file = File.join(Config::Root, 'router.db')
- Oxidized.asetus.user.source.csv.delimiter = /:/
- Oxidized.asetus.user.source.csv.map.name = 0
- Oxidized.asetus.user.source.csv.map.model = 1
- Oxidized.asetus.user.source.csv.gpg = false
- Oxidized.asetus.save :user
- raise NoConfig, 'no source csv config, edit ~/.config/oxidized/config'
+ class CSV < Source
+ def initialize
+ @cfg = Oxidized.config.source.csv
+ super
end
- require 'gpgme' if @cfg.gpg?
- end
- def load
- nodes = []
- file = File.expand_path(@cfg.file)
- file = if @cfg.gpg?
- crypto = GPGME::Crypto.new password: @cfg.gpg_password
- file = crypto.decrypt(File.open(file)).to_s
- else
- open(file)
- end
- file.each_line do |line|
- next if line.match(/^\s*#/)
- data = line.chomp.split(@cfg.delimiter, -1)
- next if data.empty?
- # map node parameters
- keys = {}
- @cfg.map.each do |key, position|
- keys[key.to_sym] = node_var_interpolate data[position]
+ def setup
+ if @cfg.empty?
+ Oxidized.asetus.user.source.csv.file = File.join(Config::Root, 'router.db')
+ Oxidized.asetus.user.source.csv.delimiter = /:/
+ Oxidized.asetus.user.source.csv.map.name = 0
+ Oxidized.asetus.user.source.csv.map.model = 1
+ Oxidized.asetus.user.source.csv.gpg = false
+ Oxidized.asetus.save :user
+ raise NoConfig, 'no source csv config, edit ~/.config/oxidized/config'
end
- keys[:model] = map_model keys[:model] if keys.has_key? :model
+ require 'gpgme' if @cfg.gpg?
+ end
- # map node specific vars
- vars = {}
- @cfg.vars_map.each do |key, position|
- vars[key.to_sym] = node_var_interpolate data[position]
- end
- keys[:vars] = vars unless vars.empty?
+ def load
+ nodes = []
+ file = File.expand_path(@cfg.file)
+ file = if @cfg.gpg?
+ crypto = GPGME::Crypto.new password: @cfg.gpg_password
+ file = crypto.decrypt(File.open(file)).to_s
+ else
+ open(file)
+ end
+ file.each_line do |line|
+ next if line.match(/^\s*#/)
+ data = line.chomp.split(@cfg.delimiter, -1)
+ next if data.empty?
+ # map node parameters
+ keys = {}
+ @cfg.map.each do |key, position|
+ keys[key.to_sym] = node_var_interpolate data[position]
+ end
+ keys[:model] = map_model keys[:model] if keys.has_key? :model
- nodes << keys
+ # map node specific vars
+ vars = {}
+ @cfg.vars_map.each do |key, position|
+ vars[key.to_sym] = node_var_interpolate data[position]
+ end
+ keys[:vars] = vars unless vars.empty?
+
+ nodes << keys
+ end
+ nodes
end
- nodes
end
-
-end
end