diff options
author | Saku Ytti <saku@ytti.fi> | 2013-04-17 17:48:50 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2013-04-17 17:48:50 +0300 |
commit | 9d217025fac3e335c308f02e7377e14ccfdc0e66 (patch) | |
tree | b90d4d04947fe26a9e592e12d8c4352142380c03 /lib/oxidized/config |
Initial commit
Silly for shit-and-giggles attempt at rancid
Diffstat (limited to 'lib/oxidized/config')
-rw-r--r-- | lib/oxidized/config/bootstrap.rb | 27 | ||||
-rw-r--r-- | lib/oxidized/config/core.rb | 28 | ||||
-rw-r--r-- | lib/oxidized/config/defaults.rb | 12 |
3 files changed, 67 insertions, 0 deletions
diff --git a/lib/oxidized/config/bootstrap.rb b/lib/oxidized/config/bootstrap.rb new file mode 100644 index 0000000..e44dde7 --- /dev/null +++ b/lib/oxidized/config/bootstrap.rb @@ -0,0 +1,27 @@ +module Oxidized + require 'fileutils' + FileUtils.mkdir_p Config::Root + CFG.username = 'username' + CFG.password = 'password' + CFG.model = 'junos' + CFG.interval = 30 + CFG.log = File.join Config::Root, 'log' + CFG.debug = false + CFG.threads = 10 + CFG.timeout = 5 + CFG.prompt = /^([\w\.\-@]{3,30}[#>]\s?)$/ + CFG.input = { + :default => 'ssh', + } + CFG.output = { + :default => 'git', + } + CFG.source = { + :default => 'ascii', + } + CFG.model_map = { + 'cisco' => 'ios', + 'juniper' => 'junos', + } + CFG.save +end 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 diff --git a/lib/oxidized/config/defaults.rb b/lib/oxidized/config/defaults.rb new file mode 100644 index 0000000..a07e1a6 --- /dev/null +++ b/lib/oxidized/config/defaults.rb @@ -0,0 +1,12 @@ +module Oxidized + class Config + Root = File.join ENV['HOME'], '.config', 'oxidized' + InputDir = File.join Directory, %w(lib oxidized input) + OutputDir = File.join Directory, %w(lib oxidized output) + ModelDir = File.join Directory, %w(lib oxidized model) + SourceDir = File.join Directory, %w(lib oxidized source) + end + class << self + attr_accessor :mgr + end +end |