e1bb919734
Replaced ENV.gcc_4_2 + comments with calls to "fails_with_llvm", to specifically message to the user when a formula is known or suspected to not build with LLVM. If the user specifies "--use-llvm", the message will be displayed, but compilation will be tried anyway. Since using LLVM is now an advanced/hidden feature instead of the default on 10.6, we'll let the user try anyway (and submit patches if things are now working.)
72 lines
1.9 KiB
Ruby
72 lines
1.9 KiB
Ruby
require 'formula'
|
|
|
|
class Redis <Formula
|
|
url 'http://redis.googlecode.com/files/redis-1.2.6.tar.gz'
|
|
head 'git://github.com/antirez/redis.git'
|
|
homepage 'http://code.google.com/p/redis/'
|
|
sha1 'c71aef0b3f31acb66353d86ba57dd321b541043f'
|
|
|
|
def install
|
|
fails_with_llvm "Breaks with LLVM"
|
|
system "make"
|
|
|
|
%w( redis-benchmark redis-cli redis-server redis-stat redis-check-dump ).each { |p|
|
|
# Some of these commands are only in 1.2.x, some only in head
|
|
bin.install p rescue nil
|
|
}
|
|
|
|
%w( run db/redis log ).each { |p| (var+p).mkpath }
|
|
|
|
# Fix up default conf file to match our paths
|
|
inreplace "redis.conf" do |s|
|
|
s.gsub! "/var/run/redis.pid", "#{var}/run/redis.pid"
|
|
s.gsub! "dir ./", "dir #{var}/db/redis/"
|
|
end
|
|
|
|
etc.install "redis.conf"
|
|
(prefix+'io.redis.redis-server.plist').write startup_plist
|
|
end
|
|
|
|
def caveats
|
|
<<-EOS.undent
|
|
Automatically load on login with:
|
|
launchctl load -w #{prefix}/io.redis.redis-server.plist
|
|
|
|
To start redis manually:
|
|
redis-server #{etc}/redis.conf
|
|
|
|
To access the server:
|
|
redis-cli
|
|
EOS
|
|
end
|
|
|
|
def startup_plist
|
|
return <<-EOPLIST
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>Label</key>
|
|
<string>io.redis.redis-server</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>#{bin}/redis-server</string>
|
|
<string>#{etc}/redis.conf</string>
|
|
</array>
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>UserName</key>
|
|
<string>#{`whoami`.chomp}</string>
|
|
<key>WorkingDirectory</key>
|
|
<string>#{var}</string>
|
|
<key>StandardErrorPath</key>
|
|
<string>#{var}/log/redis.log</string>
|
|
<key>StandardOutPath</key>
|
|
<string>#{var}/log/redis.log</string>
|
|
</dict>
|
|
</plist>
|
|
EOPLIST
|
|
end
|
|
end
|