From 9d217025fac3e335c308f02e7377e14ccfdc0e66 Mon Sep 17 00:00:00 2001 From: Saku Ytti Date: Wed, 17 Apr 2013 17:48:50 +0300 Subject: Initial commit Silly for shit-and-giggles attempt at rancid --- lib/oxidized/config/bootstrap.rb | 27 +++++++++++++++++++++++++++ lib/oxidized/config/core.rb | 28 ++++++++++++++++++++++++++++ lib/oxidized/config/defaults.rb | 12 ++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 lib/oxidized/config/bootstrap.rb create mode 100644 lib/oxidized/config/core.rb create mode 100644 lib/oxidized/config/defaults.rb (limited to 'lib/oxidized/config') 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 -- cgit v1.2.1