aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-02-27 15:38:05 -0300
committerSilvio Rhatto <rhatto@riseup.net>2011-02-27 15:38:05 -0300
commit89049c1338c6ecd9951753bf00a24ab479723149 (patch)
tree26ef47d42693565819fc9a52a27d0921167bcc0e
parent016dda3698847024d102c309039f2d6f5511e6c0 (diff)
downloadkeyringer-89049c1338c6ecd9951753bf00a24ab479723149.tar.gz
keyringer-89049c1338c6ecd9951753bf00a24ab479723149.tar.bz2
Init: creating/cloning repository and other changes
-rw-r--r--lib/backend/git.rb8
-rw-r--r--lib/backend/recipients_store.rb12
-rw-r--r--lib/keyring.rb2
-rw-r--r--lib/keyring/user_config.rb19
-rw-r--r--lib/keyringer.rb1
-rw-r--r--lib/keyringer/actions/decrypt.rb2
-rw-r--r--lib/keyringer/actions/init.rb8
7 files changed, 41 insertions, 11 deletions
diff --git a/lib/backend/git.rb b/lib/backend/git.rb
index 177657b..4ce016d 100644
--- a/lib/backend/git.rb
+++ b/lib/backend/git.rb
@@ -28,5 +28,13 @@ module Backend
false
end
end
+
+ def init(path)
+ @git = ::Git.init(path)
+ end
+
+ def clone(url, path)
+ @git = ::Git.clone(url, path)
+ end
end
end
diff --git a/lib/backend/recipients_store.rb b/lib/backend/recipients_store.rb
index 16b063b..2dab533 100644
--- a/lib/backend/recipients_store.rb
+++ b/lib/backend/recipients_store.rb
@@ -48,10 +48,18 @@ module Backend
write()
end
+ def getPath()
+ File.join(@baseDir, "config", "recipients")
+ end
+
+ def hasPath?()
+ File.directory?(getPath())
+ end
+
private
def read()
- fileName = File.join(@baseDir, "config", "recipients")
+ fileName = getPath()
file = File.new(fileName, "r")
begin
recipients = []
@@ -72,7 +80,7 @@ module Backend
end
def write()
- fileName = File.join(@baseDir, "config", "recipients")
+ fileName = getPath()
file = File.new(fileName, "w")
begin
@recipients.each do |recipient|
diff --git a/lib/keyring.rb b/lib/keyring.rb
index ca54109..8f81bba 100644
--- a/lib/keyring.rb
+++ b/lib/keyring.rb
@@ -22,6 +22,8 @@
$:.unshift File.dirname(__FILE__)
require 'backend'
require 'keyring/fs'
+require 'keyring/keys'
+require 'keyring/repository'
require 'keyring/crypt'
require 'keyring/recipients'
require 'keyring/user_config'
diff --git a/lib/keyring/user_config.rb b/lib/keyring/user_config.rb
index 21a8c33..c6d48e6 100644
--- a/lib/keyring/user_config.rb
+++ b/lib/keyring/user_config.rb
@@ -22,17 +22,24 @@ module Keyring
class UserConfig
include Singleton
- def initialize
- self.load
+ def initialize(path = nil)
+ self.loadMainConfig
self.check
end
- def load
+ def loadMainConfig
@user_config = ENV['HOME'] + '/.keyringer/config'
@keyrings = Backend::parse_config(@user_config)
@path = @keyrings.get_value($keyring)
end
+ # TODO
+ def saveMainConfig
+ # TODO: copy each keyring definition to a hash
+ # update path of the current keyring
+ file = open(@user_config, 'w')
+ end
+
def keyrings
@keyrings
end
@@ -41,7 +48,13 @@ module Keyring
@path
end
+ def setPath(path)
+ @path = path
+ saveMainConfig
+ end
+
def check
+ raise "Not a directory: #{@path}" if !File::directory?(@path)
raise "No keydir configured for #{$keyring} keyring." if @path.nil?
end
end
diff --git a/lib/keyringer.rb b/lib/keyringer.rb
index b8d4595..94ae4b8 100644
--- a/lib/keyringer.rb
+++ b/lib/keyringer.rb
@@ -20,6 +20,7 @@
# general requires
require 'singleton'
+require 'pathname'
# internal requires
$:.unshift File.dirname(__FILE__)
diff --git a/lib/keyringer/actions/decrypt.rb b/lib/keyringer/actions/decrypt.rb
index bac4785..316db34 100644
--- a/lib/keyringer/actions/decrypt.rb
+++ b/lib/keyringer/actions/decrypt.rb
@@ -22,7 +22,7 @@ module Keyringer
module Actions
class Decrypt
def execute
- raise "Missing key argument" if $args[0].nil?
+ raise "Missing argument: key" if $args[0].nil?
crypt = Keyring::Crypt.new
crypt.decryptKey($args[0])
end
diff --git a/lib/keyringer/actions/init.rb b/lib/keyringer/actions/init.rb
index d48abbf..00a609a 100644
--- a/lib/keyringer/actions/init.rb
+++ b/lib/keyringer/actions/init.rb
@@ -21,12 +21,10 @@
module Keyringer
module Actions
class Init
- def initialize
- path = Keyring::UserConfig.instance.path
- Backend::Git.new
- end
-
def execute
+ raise "Missing argument: path" if $args[0].nil?
+ repository = Keyring::Repository.new
+ repository.create($args[0], $args[1])
end
end
end