From 76d0fabcaee4b8a6bdf8c00df45b1813b87e22f2 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 1 Feb 2011 14:04:49 -0200 Subject: Adding git backend and init code; fixing decrypt behavior --- README | 17 ++++++----------- lib/backend.rb | 2 ++ lib/backend/git.rb | 32 ++++++++++++++++++++++++++++++++ lib/keyringer/actions/decrypt.rb | 6 +++--- lib/keyringer/actions/init.rb | 5 +++++ 5 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 lib/backend/git.rb diff --git a/README b/README index 59d4512..c2799b0 100644 --- a/README +++ b/README @@ -10,11 +10,11 @@ Requirements Keyringer needs: - - Bash - http://tiswww.case.edu/php/chet/bash/bashtop.html - - Git - http://git-scm.com - - GNU Privacy Guard - http://gnupg.org - - OpenSSL - http://www.openssl.org - - Grep, awk, tail, cut, sed and other GNU tools + - Ruby + - Rubygems and the following gems: + - git + - gpgme + - parseconfig Installation ------------ @@ -217,7 +217,7 @@ There are lots of things that can be enhanced, like: - Hidden recipient support (including recipients file). - - Rewrite using an object-oriented programming language? + - Rewrite using an object-oriented programming language. - Tab completion subcommand support for popular shells like bash. @@ -229,8 +229,3 @@ There are lots of things that can be enhanced, like: - List available subommands. -Development ------------ - -Developers needed! :) - diff --git a/lib/backend.rb b/lib/backend.rb index 953ca8d..6275bcb 100644 --- a/lib/backend.rb +++ b/lib/backend.rb @@ -21,9 +21,11 @@ # gems require 'rubygems' require 'parseconfig' +require 'git' # internal requires $:.unshift File.dirname(__FILE__) +require 'backend/git' require 'backend/crypt' require 'backend/recipients_store' require 'backend/parse_config' diff --git a/lib/backend/git.rb b/lib/backend/git.rb new file mode 100644 index 0000000..177657b --- /dev/null +++ b/lib/backend/git.rb @@ -0,0 +1,32 @@ +#!/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 + class Git + def open(path) + begin + @git = ::Git.open(path) + rescue Exception => e + puts "Cannot open #{path}" + false + end + end + end +end diff --git a/lib/keyringer/actions/decrypt.rb b/lib/keyringer/actions/decrypt.rb index f76dcc9..33f01c2 100644 --- a/lib/keyringer/actions/decrypt.rb +++ b/lib/keyringer/actions/decrypt.rb @@ -22,10 +22,10 @@ module Keyringer module Actions class Decrypt def execute - filename = $args[0] + path = Keyring::UserConfig.instance.path + filename = path + '/keys/' + $args[0] + '.asc' crypt = Keyring::Crypt.new - output = crypt.decrypt(filename) - return output + crypt.decrypt(filename) end end end diff --git a/lib/keyringer/actions/init.rb b/lib/keyringer/actions/init.rb index 1aa6de1..d48abbf 100644 --- a/lib/keyringer/actions/init.rb +++ b/lib/keyringer/actions/init.rb @@ -22,6 +22,11 @@ module Keyringer module Actions class Init def initialize + path = Keyring::UserConfig.instance.path + Backend::Git.new + end + + def execute end end end -- cgit v1.2.3