diff options
| author | Jiayong Ou | 2010-08-19 15:40:55 +0200 |
|---|---|---|
| committer | Adam Vandenberg | 2010-10-22 09:38:00 -0700 |
| commit | 0b9cf36e2e5d12d082292333c98054a909fbdbf8 (patch) | |
| tree | 1e7c67395b4ba6f4ef1eb672c3db714a20a8dedd | |
| parent | 5dfeb3b482c18049b8dc4377f1f9403be339efc0 (diff) | |
| download | homebrew-0b9cf36e2e5d12d082292333c98054a909fbdbf8.tar.bz2 | |
New formula: zookeeper
ZooKeeper is a centralized service for maintaining configuration information,
naming, providing distributed synchronization, and providing group services.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
| -rw-r--r-- | Library/Formula/zookeeper.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Library/Formula/zookeeper.rb b/Library/Formula/zookeeper.rb new file mode 100644 index 000000000..59cf0dd14 --- /dev/null +++ b/Library/Formula/zookeeper.rb @@ -0,0 +1,69 @@ +require 'formula' + +class Zookeeper <Formula + url 'http://mirror.switch.ch/mirror/apache/dist/hadoop/zookeeper/zookeeper-3.3.1/zookeeper-3.3.1.tar.gz' + homepage 'http://hadoop.apache.org/zookeeper' + md5 'bdcd73634e3f6623a025854f853c3d0d' + + def shim_script target + <<-EOS.undent + #!/usr/bin/env bash + . "#{etc}/zookeeper/defaults" + cd #{libexec}/bin + ./#{target} $* + EOS + end + + def default_zk_env + <<-EOS.undent + export ZOOCFGDIR="#{etc}/zookeeper" + EOS + end + + def default_log4j_properties + <<-EOS.undent + log4j.rootCategory=WARN, zklog + + log4j.appender.zklog = org.apache.log4j.FileAppender + log4j.appender.zklog.File = #{var}/log/zookeeper/zookeeper.log + log4j.appender.zklog.Append = true + log4j.appender.zklog.layout = org.apache.log4j.PatternLayout + log4j.appender.zklog.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n + EOS + end + + def install + # Remove windows executables + rm_f Dir["bin/*.cmd"] + + # Install Java stuff + libexec.install %w(bin contrib lib) + libexec.install Dir['*.jar'] + + # Create neccessary directories + bin.mkpath + (etc+'zookeeper').mkpath + (var+'log/zookeeper').mkpath + (var+'run/zookeeper/data').mkpath + + # Install shim scripts to bin + Dir["#{libexec}/bin/*.sh"].map { |p| Pathname.new p }.each { |path| + next if path == libexec+'bin/zkEnv.sh' + script_name = path.basename + bin_name = path.basename '.sh' + (bin+bin_name).write shim_script(script_name) + } + + # Install default config files + defaults = etc+'zookeeper/defaults' + defaults.write(default_zk_env) unless defaults.exist? + + log4j_properties = etc+'zookeeper/log4j.properties' + log4j_properties.write(default_log4j_properties) unless log4j_properties.exist? + + unless (etc+'zookeeper/zoo.cfg').exist? + inreplace 'conf/zoo_sample.cfg', /^dataDir=.*/, "dataDir=#{var}/run/zookeeper/data" + (etc+'zookeeper').install 'conf/zoo_sample.cfg' + end + end +end |
