YUKI Hiroshi
null+****@clear*****
Thu Sep 18 15:22:34 JST 2014
YUKI Hiroshi 2014-09-18 15:22:34 +0900 (Thu, 18 Sep 2014) New Revision: 899da6cc01b3edea001c05d4ab5224a707ae2fe2 https://github.com/droonga/droonga-engine/commit/899da6cc01b3edea001c05d4ab5224a707ae2fe2 Message: Regenerate configuration files Modified files: bin/droonga-engine-configure Modified: bin/droonga-engine-configure (+48 -5) =================================================================== --- bin/droonga-engine-configure 2014-09-18 14:17:50 +0900 (7792094) +++ bin/droonga-engine-configure 2014-09-18 15:22:34 +0900 (c4ac437) @@ -17,9 +17,11 @@ require "optparse" require "fileutils" +require "yaml" require "droonga/path" require "droonga/command/droonga_engine" +require "droonga/safe_file_writer" options = { :quiet => nil, @@ -118,6 +120,16 @@ def confirmed?(message) end end +def path_from_base_dir(path) + path = path.to_s + base = "#{Droonga::Path.base.to_s}/" + if path.start_with?(base) + path.sub(base, "") + else + path + end +end + running = false if running?(configuration) @@ -132,32 +144,63 @@ if running?(configuration) running = true end + +Droonga::Path.base = service_base_directory if installed_as_service? + + +data_files = [ + Droonga::Path.databases, + Droonga::Path.state, +] +have_data = data_files.any?(&:exist?) +options[:clear] = false unless have_data + if !options[:quiet] and options[:clear].nil? options[:clear] = confirmed?("Do you want all data to be cleared?") end + +options[:reset] = true unless Droonga::Path.config.exist? + if !options[:quiet] and options[:reset].nil? options[:reset] = confirmed?("Do you want the configuration file " + "\"droonga-engine.yaml\" to be regenerated?") end -Droonga::Path.base = service_base_directory if installed_as_service? - if running unjoin(configuration) stop_service(configuration) end if options[:clear] - FileUtils.rm_rf(Droonga::Path.databases.to_s) - FileUtils.rm_rf(Droonga::Path.state.to_s) + data_files.each do |file| + FileUtils.rm_rf(file.to_s) + end end if options[:reset] - # clear and regenerate "droonga-engine.yaml"... + new_configuration = { + "host" => configuration.host, + "port" => configuration.port, + "tag" => configuration.tag, + "daemon" => installed_as_service?, + "log_file" => path_from_base_dir(Droonga::Path.default_log_file), + } + unless installed_as_service? + pid_file_path = path_from_base_dir(Droonga::Path.default_pid_file) + new_configuration["pid_file"] = pid_file_path + end + Droonga::SafeFileWriter.write(Droonga::Path.config, + YAML.dump(new_configuration)) end +system("droonga-engine-catalog-generate", + "--output", Droonga::Path.catalog.to_s, + "--hosts", configuration.host, + "--port", configuration.port.to_s, + "--tag", configuration.tag) + start_service if running exit(true) -------------- next part -------------- HTML����������������������������...Download