Created
June 27, 2012 18:35
-
-
Save llimllib/3005918 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'formula' | |
class RedisIntervals < Formula | |
homepage 'https://github.com/hoxworth/redis/tree/2.6-intervals' | |
head 'https://github.com/hoxworth/redis.git', :branch => '2.6-intervals' | |
fails_with :llvm do | |
build 2334 | |
cause 'Fails with "reference out of range from _linenoise"' | |
end | |
def install | |
# Architecture isn't detected correctly on 32bit Snow Leopard without help | |
ENV["OBJARCH"] = MacOS.prefer_64_bit? ? "-arch x86_64" : "-arch i386" | |
# Head and stable have different code layouts | |
src = (buildpath/'src/Makefile').exist? ? buildpath/'src' : buildpath | |
system "make", "-C", src, "CC=#{ENV.cc}" | |
%w[benchmark cli server check-dump check-aof].each { |p| bin.install src/"redis-#{p}" } | |
%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/" | |
s.gsub! "\# bind 127.0.0.1", "bind 127.0.0.1" | |
end | |
etc.install 'redis.conf' | |
plist_path.write startup_plist | |
plist_path.chmod 0644 | |
end | |
def caveats | |
<<-EOS.undent | |
If this is your first install, automatically load on login with: | |
mkdir -p ~/Library/LaunchAgents | |
cp #{plist_path} ~/Library/LaunchAgents/ | |
launchctl load -w ~/Library/LaunchAgents/#{plist_path.basename} | |
If this is an upgrade and you already have the #{plist_path.basename} loaded: | |
launchctl unload -w ~/Library/LaunchAgents/#{plist_path.basename} | |
cp #{plist_path} ~/Library/LaunchAgents/ | |
launchctl load -w ~/Library/LaunchAgents/#{plist_path.basename} | |
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>#{plist_name}</string> | |
<key>ProgramArguments</key> | |
<array> | |
<string>#{HOMEBREW_PREFIX}/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment