From 06675ebe0a69f1b3ae9b9d9fdfdeedf6392c40cf Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 1 Feb 2011 11:26:13 -0200 Subject: Loading and checking user configuration --- bin/keyringer | 1 + lib/backend.rb | 5 +++++ lib/backend/parse_config.rb | 26 ++++++++++++++++++++++++++ lib/keyring.rb | 1 + lib/keyringer.rb | 4 ++++ lib/keyringer/actions/init.rb | 28 ++++++++++++++++++++++++++++ lib/keyringer/checker.rb | 2 ++ lib/keyringer/console.rb | 2 -- 8 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 lib/backend/parse_config.rb create mode 100644 lib/keyringer/actions/init.rb diff --git a/bin/keyringer b/bin/keyringer index fa569ff..47e5986 100755 --- a/bin/keyringer +++ b/bin/keyringer @@ -25,6 +25,7 @@ require 'keyringer' begin Keyringer::Parser.new + Keyringer::Checker.new puts "Performing action #{$action.capitalize}" begin action = Keyringer::Actions.const_get($action.capitalize) diff --git a/lib/backend.rb b/lib/backend.rb index e427d2e..953ca8d 100644 --- a/lib/backend.rb +++ b/lib/backend.rb @@ -18,7 +18,12 @@ # along with this program. If not, see . # +# gems +require 'rubygems' +require 'parseconfig' + # internal requires $:.unshift File.dirname(__FILE__) require 'backend/crypt' require 'backend/recipients_store' +require 'backend/parse_config' diff --git a/lib/backend/parse_config.rb b/lib/backend/parse_config.rb new file mode 100644 index 0000000..c879cb5 --- /dev/null +++ b/lib/backend/parse_config.rb @@ -0,0 +1,26 @@ +#!/usr/bin/env ruby +# +# Keyringer secret management system. +# +# Copyright (C) 2011 Keyringer Development Team. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +module Backend + # A wrapper around ParseConfig + def self.parse_config(config) + ParseConfig.new(config) + end +end diff --git a/lib/keyring.rb b/lib/keyring.rb index d394f47..31d9e11 100644 --- a/lib/keyring.rb +++ b/lib/keyring.rb @@ -24,3 +24,4 @@ require 'backend' require 'keyring/crypt' require 'keyring/fs' require 'keyring/recipients' +require 'keyring/user_config' diff --git a/lib/keyringer.rb b/lib/keyringer.rb index 0209fd0..f271dd1 100644 --- a/lib/keyringer.rb +++ b/lib/keyringer.rb @@ -18,6 +18,9 @@ # along with this program. If not, see . # +# general requires +require 'singleton' + # internal requires $:.unshift File.dirname(__FILE__) require 'keyring' @@ -27,6 +30,7 @@ require 'keyringer/checker' require 'keyringer/console' require 'keyringer/actions/decrypt' require 'keyringer/actions/recipients' +require 'keyringer/actions/init' module Keyringer VERSION = '2.0-alpha' diff --git a/lib/keyringer/actions/init.rb b/lib/keyringer/actions/init.rb new file mode 100644 index 0000000..1aa6de1 --- /dev/null +++ b/lib/keyringer/actions/init.rb @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +# +# Keyringer secret management system. +# +# Copyright (C) 2011 Keyringer Development Team. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +module Keyringer + module Actions + class Init + def initialize + end + end + end +end diff --git a/lib/keyringer/checker.rb b/lib/keyringer/checker.rb index 3feb98b..5369b95 100644 --- a/lib/keyringer/checker.rb +++ b/lib/keyringer/checker.rb @@ -21,6 +21,8 @@ module Keyringer class Checker def initialize + path = Keyring::UserConfig.instance.path + raise "No path configuration for #{$keyring} keyring." if path.nil? end end end diff --git a/lib/keyringer/console.rb b/lib/keyringer/console.rb index 08be3be..e3b6fae 100644 --- a/lib/keyringer/console.rb +++ b/lib/keyringer/console.rb @@ -19,8 +19,6 @@ # module Keyringer - require 'singleton' - class Console include Singleton def initialize -- cgit v1.2.3