tasks/redis.rake in rhosync-2.1.0.beta.2 vs tasks/redis.rake in rhosync-2.1.0
- old
+ new
@@ -9,10 +9,23 @@
if windows?
$redis_ver = "redis-1.2.6-windows"
$redis_zip = "C:/#{$redis_ver}.zip"
$redis_dest = "C:/"
end
+
+def redis_home
+ ENV['REDIS_HOME'] || File.join($redis_dest,$redis_ver)
+end
+
+def mk_bin_dir(bin_dir)
+ begin
+ mkdir_p bin_dir unless File.exists?(bin_dir)
+ rescue
+ puts "Can't create #{bin_dir}, maybe you need to run command as root?"
+ exit 1
+ end
+end
class RedisRunner
def self.prefix
"/usr/local/"
@@ -41,11 +54,11 @@
end
def self.start
if windows?
puts "Starting redis in a new window..."
- sh "start #{File.join($redis_dest,$redis_ver,'redis-server')}" rescue
+ sh "start #{File.join(redis_home,'redis-server')}" rescue
"redis-server not installed on your path, please run 'rake redis:install' first."
else
puts 'Detach with Ctrl+\ Re-attach with rake redis:attach'
sleep 1
command = "dtach -A #{dtach_socket} redis-server #{redisconfdir}"
@@ -93,10 +106,13 @@
desc 'Install the latest verison of Redis from Github (requires git, duh)'
task :install => [:about, :download, :make] do
unless windows?
ENV['PREFIX'] and bin_dir = "#{ENV['PREFIX']}/bin" or bin_dir = "#{RedisRunner.prefix}bin"
+
+ mk_bin_dir(bin_dir)
+
%w(redis-benchmark redis-cli redis-server).each do |bin|
sh "cp /tmp/redis/#{bin} #{bin_dir}"
end
puts "Installed redis-benchmark, redis-cli and redis-server to #{bin_dir}"
@@ -121,11 +137,11 @@
task :download do
if windows?
require 'net/http'
require 'zip/zip'
- puts "Installing redis to #{$redis_dest}/#{$redis_ver}."
+ puts "Installing redis to #{redis_home}."
Net::HTTP.start("servicestack.googlecode.com") do |http|
resp = http.get("/files/#{$redis_ver}.zip")
open($redis_zip, "wb") do |file|
file.write(resp.body)
@@ -142,11 +158,11 @@
FileUtils.rm_f $redis_zip
else
sh 'rm -rf /tmp/redis/' if File.exists?("#{RedisRunner.redisdir}")
sh 'git clone git://github.com/antirez/redis.git /tmp/redis -n'
- sh "cd #{RedisRunner.redisdir} && git reset --hard && git checkout v2.0.2-stable"
+ sh "cd #{RedisRunner.redisdir} && git reset --hard && git checkout v2.0.4-stable"
end
end
end
@@ -171,9 +187,12 @@
unless File.directory?('/tmp/dtach-0.8')
system('tar xzf dtach-0.8.tar.gz')
end
ENV['PREFIX'] and bin_dir = "#{ENV['PREFIX']}/bin" or bin_dir = "#{RedisRunner.prefix}bin"
+
+ mk_bin_dir(bin_dir)
+
Dir.chdir('/tmp/dtach-0.8/')
sh 'cd /tmp/dtach-0.8/ && ./configure && make'
sh "cp /tmp/dtach-0.8/dtach #{bin_dir}"
puts "Dtach successfully installed to #{bin_dir}"
\ No newline at end of file