Piro / YUKI Hiroshi
null+****@clear*****
Tue Sep 23 20:35:21 JST 2014
Piro / YUKI Hiroshi 2014-09-23 20:35:21 +0900 (Tue, 23 Sep 2014) New Revision: b547857f1abb0f0f3d1099bff1cf87f089113b08 https://github.com/droonga/droonga-engine/commit/b547857f1abb0f0f3d1099bff1cf87f089113b08 Message: Detect service base path automatically Modified files: bin/droonga-engine-status bin/droonga-engine-unjoin lib/droonga/service_installation.rb Modified: bin/droonga-engine-status (+11 -0) =================================================================== --- bin/droonga-engine-status 2014-09-23 20:30:04 +0900 (165b61e) +++ bin/droonga-engine-status 2014-09-23 20:35:21 +0900 (3b4475f) @@ -19,6 +19,17 @@ require "optparse" require "sys/proctable" require "droonga/command/droonga_engine" +require "droonga/service_installation" + +service_installation = Droonga::ServiceInstallation.new +service_installation.ensure_using_service_base_directory + +unless service_installation.have_read_permission? + puts("You have no permission to read files under " + + "<#{Droonga::Path.base.to_s}>.") + puts("Try again with right permission.") + exit(false) +end configuration = Droonga::Command::DroongaEngine::Configuration.new parser = OptionParser.new Modified: bin/droonga-engine-unjoin (+12 -0) =================================================================== --- bin/droonga-engine-unjoin 2014-09-23 20:30:04 +0900 (cf4774b) +++ bin/droonga-engine-unjoin 2014-09-23 20:35:21 +0900 (b9aa6f6) @@ -24,8 +24,12 @@ require "droonga/engine/version" require "droonga/path" require "droonga/catalog_generator" require "droonga/safe_file_writer" +require "droonga/service_installation" require "droonga/serf" +service_installation = Droonga::ServiceInstallation.new +service_installation.ensure_using_service_base_directory + options = OpenStruct.new options.base_dir = ENV[Droonga::Path::BASE_DIR_ENV_NAME] || Dir.pwd @@ -48,6 +52,7 @@ parser.parse!(ARGV) base_dir = Pathname(options.base_dir).expand_path ENV[Droonga::Path::BASE_DIR_ENV_NAME] = base_dir.to_s + catalog_path = Droonga::Path.catalog unless catalog_path.exist? raise "Cannot load 'catalog.json'. You must specify correct path " + @@ -59,6 +64,13 @@ unless options.replica_remove_host "be removed from the cluster via --replica-remove-host option." end +unless service_installation.have_read_permission? + puts("You have no permission to read files under " + + "<#{Droonga::Path.base.to_s}>.") + puts("Try again with right permission.") + exit(false) +end + source_catalog = JSON.parse(catalog_path.read) generator = Droonga::CatalogGenerator.new generator.load(source_catalog) Modified: lib/droonga/service_installation.rb (+10 -0) =================================================================== --- lib/droonga/service_installation.rb 2014-09-23 20:30:04 +0900 (564b4c8) +++ lib/droonga/service_installation.rb 2014-09-23 20:35:21 +0900 (537c579) @@ -43,6 +43,16 @@ module Droonga end end + def have_read_permission? + test_file = Path.config + begin + test_file.read + rescue Errno::EACCES => error + return false + end + true + end + def have_write_permission? test_file = Path.base + "#{Time.now.to_i}.test" begin -------------- next part -------------- HTML����������������������������...Download