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