-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathRakefile
73 lines (61 loc) · 2.01 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
require 'open-uri'
require 'uri'
task :default => [:test]
def cassandra_running?
File.exists?(Dir.pwd + "/cassandra/cassandra.pid")
end
namespace :cassandra do
version = "0.6.0"
subversion = "-rc1"
url = "http://www.nic.funet.fi/pub/mirrors/apache.org/cassandra/#{version}/apache-cassandra-#{version}#{subversion}-bin.tar.gz"
desc "Setup Cassandra"
task :setup do
raise "Cassandra is already installed" if File.exists?(Dir.pwd + "/cassandra")
puts url
sh "tar -zxf #{URI.parse(url).open.path}"
sh "mv apache-cassandra-#{version}#{subversion} cassandra"
sh "mv cassandra/conf cassandra/default_conf"
sh "ln -nfs #{Dir.pwd}/config cassandra/conf"
end
desc "Cleanup cassandra files"
task :cleanup do
FileUtils.rm_r(Dir.pwd + '/data') if File.exists?(Dir.pwd + "/data")
FileUtils.rm_r(Dir.pwd + '/log') if File.exists?(Dir.pwd + "/log")
end
desc "Start Cassandra"
task :start do
raise "Cassandra already running" if cassandra_running?
Rake::Task["cassandra:setup"].execute unless File.exists?(Dir.pwd + "/cassandra")
ENV["CASSANDRA_INCLUDE"] = "./config/cassandra.in.sh"
sh "./cassandra/bin/cassandra -p #{Dir.pwd + "/cassandra/cassandra.pid"}"
end
desc "Stop Cassandra"
task :stop do
raise "Cassandra not running" unless cassandra_running?
sh "kill #{File.open("cassandra/cassandra.pid").read}"
end
end
desc "Invoke SBT"
task :sbt, :command do |task, command|
c = command.class <= String ? command : command["command"]
sh "java -Xmx512M -jar bin/sbt-launch-0.7.1.jar #{c}"
end
desc "Compile Scalandra"
task :compile do
Rake::Task["sbt"].execute("compile")
end
desc "Fetch dependencies"
task :dependencies do
Rake::Task["sbt"].execute("update")
end
desc "Test scalandra"
task :test => :dependencies do
begin
Rake::Task["cassandra:stop"].execute if cassandra_running?
Rake::Task["cassandra:cleanup"].execute
Rake::Task["cassandra:start"].execute
Rake::Task["sbt"].execute("test")
ensure
Rake::Task["cassandra:stop"].execute
end
end