require 'formula' class Cassandra < Formula homepage 'http://cassandra.apache.org' url 'http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.8/apache-cassandra-2.0.8-bin.tar.gz' sha1 'b5368c4b260e1d24b2bcbae3b97fd3eec966d68e' def install (var+"lib/cassandra").mkpath (var+"log/cassandra").mkpath (etc+"cassandra").mkpath inreplace "conf/cassandra.yaml", "/var/lib/cassandra", "#{var}/lib/cassandra" inreplace "conf/log4j-server.properties", "/var/log/cassandra", "#{var}/log/cassandra" inreplace "conf/cassandra-env.sh", "/lib/", "/" inreplace "bin/cassandra.in.sh" do |s| s.gsub! "CASSANDRA_HOME=\"`dirname \"$0\"`/..\"", "CASSANDRA_HOME=\"#{prefix}\"" # Store configs in etc, outside of keg s.gsub! "CASSANDRA_CONF=\"$CASSANDRA_HOME/conf\"", "CASSANDRA_CONF=\"#{etc}/cassandra\"" # Jars installed to prefix, no longer in a lib folder s.gsub! "\"$CASSANDRA_HOME\"/lib/*.jar", "\"$CASSANDRA_HOME\"/*.jar" # The jammm Java agent is not in a lib/ subdir either: s.gsub! "JAVA_AGENT=\"$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-", "JAVA_AGENT=\"$JAVA_AGENT -javaagent:$CASSANDRA_HOME/jamm-" end rm Dir["bin/*.bat"] (etc+"cassandra").install Dir["conf/*"] prefix.install Dir["*.txt", "{bin,interface,javadoc,pylib,lib/licenses}"] prefix.install Dir["lib/*.jar"] share.install [bin+'cassandra.in.sh', bin+'stop-server'] inreplace Dir["#{bin}/cassandra*", "#{bin}/debug-cql", "#{bin}/json2sstable", "#{bin}/nodetool", "#{bin}/sstable*"], /`dirname "?\$0"?`\/cassandra.in.sh/, "#{share}/cassandra.in.sh" end def caveats; <<-EOS.undent If you plan to use the CQL shell (cqlsh), you will need the Python CQL library installed. Since Homebrew prefers using pip for Python packages, you can install that using: pip install cql EOS end def plist; <<-EOS.undent KeepAlive Label #{plist_name} ProgramArguments #{opt_bin}/cassandra -f RunAtLoad WorkingDirectory #{var}/lib/cassandra EOS end end