diff options
-rwxr-xr-x | bin/tapicero | 5 | ||||
-rw-r--r-- | lib/tapicero.rb | 2 | ||||
-rw-r--r-- | lib/tapicero/user_database.rb | 19 | ||||
-rw-r--r-- | lib/tapicero_daemon.rb | 1 |
4 files changed, 24 insertions, 3 deletions
diff --git a/bin/tapicero b/bin/tapicero index 9a5a7ee..b8b88f1 100755 --- a/bin/tapicero +++ b/bin/tapicero @@ -1,10 +1,11 @@ #!/usr/bin/ruby +require 'pathname' # # Tapicero Daemon # -BASE_DIR = File.expand_path('../..', File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__) +BASE_DIR = Pathname.new(__FILE__).realpath + '../..' begin # @@ -17,7 +18,7 @@ rescue LoadError # require "#{BASE_DIR}/lib/tapicero/version.rb" Tapicero::REQUIRE_PATHS.each do |path| - path = File.expand_path(path, BASE_DIR) + path = BASE_DIR + path $LOAD_PATH.unshift path unless $LOAD_PATH.include?(path) end require 'rubygems' diff --git a/lib/tapicero.rb b/lib/tapicero.rb index aba9fad..3923c65 100644 --- a/lib/tapicero.rb +++ b/lib/tapicero.rb @@ -1,5 +1,5 @@ unless defined? BASE_DIR - BASE_DIR = File.expand_path('../..', __FILE__) + BASE_DIR = Pathname.new(__FILE__) + '../..' end unless defined? TAPICERO_CONFIG TAPICERO_CONFIG = '/etc/leap/tapicero.yaml' diff --git a/lib/tapicero/user_database.rb b/lib/tapicero/user_database.rb index 8f461ef..b08558f 100644 --- a/lib/tapicero/user_database.rb +++ b/lib/tapicero/user_database.rb @@ -23,6 +23,21 @@ module Tapicero CouchRest.put security_url, security end + def add_design_docs + pattern = BASE_DIR + 'designs' + '*.json' + Tapicero.logger.debug "looking for design docs in #{pattern}" + Pathname.glob(pattern).each do |file| + upload_design_doc(file) + end + end + + def upload_design_doc(file) + url = design_url(file.basename) + Tapicero.logger.debug "uploading design doc #{file.basename} to #{url}" + CouchRest.put url, JSON.parse(file.read) + end + + def destroy db = CouchRest.new(host).database(name) db.delete! if db @@ -40,6 +55,10 @@ module Tapicero "#{host}/#{name}/_security" end + def design_url(doc_name) + "#{host}/#{name}/_design/#{doc_name}" + end + attr_reader :host, :name end end diff --git a/lib/tapicero_daemon.rb b/lib/tapicero_daemon.rb index 9020fa2..67eee88 100644 --- a/lib/tapicero_daemon.rb +++ b/lib/tapicero_daemon.rb @@ -15,6 +15,7 @@ module Tapicero db = user_database(hash['id']) db.create db.secure(config.options[:security]) + db.add_design_docs end users.deleted do |hash| |