aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-02-01 14:04:49 -0200
committerSilvio Rhatto <rhatto@riseup.net>2011-02-01 14:04:49 -0200
commit76d0fabcaee4b8a6bdf8c00df45b1813b87e22f2 (patch)
tree0c649197fac9671a38ec8e05ae7719acd5c35d59
parent7a9567d76454217955e643953da37f31fe760185 (diff)
downloadkeyringer-76d0fabcaee4b8a6bdf8c00df45b1813b87e22f2.tar.gz
keyringer-76d0fabcaee4b8a6bdf8c00df45b1813b87e22f2.tar.bz2
Adding git backend and init code; fixing decrypt behavior
-rw-r--r--README17
-rw-r--r--lib/backend.rb2
-rw-r--r--lib/backend/git.rb32
-rw-r--r--lib/keyringer/actions/decrypt.rb6
-rw-r--r--lib/keyringer/actions/init.rb5
5 files changed, 48 insertions, 14 deletions
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 <http://www.gnu.org/licenses/>.
+#
+
+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