Skip to content

Commit

Permalink
Add cassandra:start and :stop Rake tasks.
Browse files Browse the repository at this point in the history
  • Loading branch information
Robert Jackson committed May 24, 2011
1 parent a82a00c commit 1d44218
Showing 1 changed file with 39 additions and 6 deletions.
45 changes: 39 additions & 6 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ CassandraBinaries = {

CASSANDRA_HOME = ENV['CASSANDRA_HOME'] || "#{ENV['HOME']}/cassandra"
CASSANDRA_VERSION = ENV['CASSANDRA_VERSION'] || '0.7'
CASSANDRA_PIDFILE = ENV['CASSANDRA_PIDFILE'] || "#{CASSANDRA_HOME}/cassandra.pid"

def setup_cassandra_version(version = CASSANDRA_VERSION)
FileUtils.mkdir_p CASSANDRA_HOME
Expand Down Expand Up @@ -57,17 +58,49 @@ def setup_environment
env
end

desc "Start Cassandra"
task :cassandra => :java do
setup_cassandra_version
def running?(pid_file = nil)
pid_file ||= CASSANDRA_PIDFILE

env = setup_environment
if File.exists?(pid_file)
pid = File.new(pid_file).read.to_i
begin
Process.kill(0, pid)
return true
rescue
File.delete(pid_file)
end
end

Dir.chdir(File.join(CASSANDRA_HOME, "cassandra-#{CASSANDRA_VERSION}")) do
sh("env #{env} bin/cassandra -f")
false
end

namespace :cassandra do
desc "Start Cassandra"
task :start, :daemonize, :needs => :java do |t, args|
args.with_defaults(:daemonize => true)

setup_cassandra_version

env = setup_environment

Dir.chdir(File.join(CASSANDRA_HOME, "cassandra-#{CASSANDRA_VERSION}")) do
sh("env #{env} bin/cassandra #{'-f' unless args.daemonize} -p #{CASSANDRA_PIDFILE}")
end
end

desc "Stop Cassandra"
task :stop => :java do
setup_cassandra_version
env = setup_environment
sh("kill $(cat #{CASSANDRA_PIDFILE})")
end
end

desc "Start Cassandra"
task :cassandra => :java do
Rake::Task["cassandra:start"].invoke(false)
end

desc "Run the Cassandra CLI"
task :cli do
Dir.chdir(File.join(CASSANDRA_HOME, "cassandra-#{CASSANDRA_VERSION}")) do
Expand Down

0 comments on commit 1d44218

Please sign in to comment.