# Inspired by rabbitmq.rake the Redbox project at http://github.com/rick/redbox/tree/master
require 'fileutils'
+require 'open-uri'
class RedisRunner
end
def self.stop
- sh 'killall redis-server'
+ sh 'echo "SHUTDOWN" | nc localhost 6379'
end
end
task :stop do
RedisRunner.stop
end
+
+ desc 'Restart redis'
+ task :restart do
+ RedisRunner.stop
+ RedisRunner.start
+ end
desc 'Attach to redis dtach socket'
task :attach do
RedisRunner.attach
end
- desc 'Install the lastest redis from svn'
+ desc 'Install the lastest verison of Redis from Github (requires git, duh)'
task :install => [:about, :download, :make] do
- sh 'sudo cp /tmp/redis/redis-server /usr/bin/'
- sh 'sudo cp /tmp/redis/redis-benchmark /usr/bin/'
- puts 'Installed redis-server and redis-benchmark to /usr/bin/'
+ %w(redis-benchmark redis-cli redis-server).each do |bin|
+ sh "sudo cp /tmp/redis/#{bin} /usr/bin/"
+ end
+
+ puts "Installed redis-benchmark, redis-cli and redis-server to /usr/bin/"
+
unless File.exists?('/etc/redis.conf')
sh 'sudo cp /tmp/redis/redis.conf /etc/'
puts "Installed redis.conf to /etc/ \n You should look at this file!"
desc "Download package"
task :download do
- system 'svn checkout http://redis.googlecode.com/svn/trunk /tmp/redis' unless File.exists?(RedisRunner.redisdir)
- system 'svn up' if File.exists?("#{RedisRunner.redisdir}/.svn")
+ sh 'rm -rf /tmp/redis/' if File.exists?("#{RedisRunner.redisdir}/.svn")
+ sh 'git clone git://github.com/antirez/redis.git /tmp/redis' unless File.exists?(RedisRunner.redisdir)
+ sh "cd #{RedisRunner.redisdir} && git pull" if File.exists?("#{RedisRunner.redisdir}/.git")
end
end
unless File.exists?('/tmp/dtach-0.8.tar.gz')
require 'net/http'
- Net::HTTP.start('superb-west.dl.sourceforge.net') do |http|
- resp = http.get('/sourceforge/dtach/dtach-0.8.tar.gz')
- open('/tmp/dtach-0.8.tar.gz', 'wb') do |file| file.write(resp.body) end
- end
+ url = 'http://downloads.sourceforge.net/project/dtach/dtach/0.8/dtach-0.8.tar.gz'
+ open('/tmp/dtach-0.8.tar.gz', 'wb') do |file| file.write(open(url).read) end
end
unless File.directory?('/tmp/dtach-0.8')
puts 'Dtach successfully installed to /usr/bin.'
end
end
-
\ No newline at end of file
+