95 lines
3.2 KiB
Ruby
95 lines
3.2 KiB
Ruby
class Disco < Formula
|
|
desc "Distributed computing framework based on the MapReduce paradigm"
|
|
homepage "http://discoproject.org/"
|
|
url "https://github.com/discoproject/disco.git",
|
|
:tag => "0.5.4",
|
|
:revision => "87a755c5302625fceedbcd5a002a4757e8387996"
|
|
revision 1
|
|
|
|
bottle do
|
|
cellar :any_skip_relocation
|
|
sha256 "b675e3901b11433a43bfb6f874d09bc72ea64ad9effbcfaecf4ad97aa81eabef" => :el_capitan
|
|
sha256 "819da8a617292acd3166651f27f0984fc21668ee659e4b2c641555d87a15d5a9" => :yosemite
|
|
sha256 "fcbaa127872fa0949183383c8ece79bfdb87d985598dc783ecf17ed893410960" => :mavericks
|
|
end
|
|
|
|
option "without-test", "Skip build-time tests (not recommended)"
|
|
|
|
depends_on :python if MacOS.version <= :snow_leopard
|
|
depends_on "erlang"
|
|
depends_on "simplejson" => :python if MacOS.version <= :leopard
|
|
depends_on "libcmph"
|
|
|
|
resource "nose" do
|
|
url "https://pypi.python.org/packages/source/n/nose/nose-1.3.7.tar.gz"
|
|
sha256 "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"
|
|
end
|
|
|
|
resource "redis" do
|
|
url "https://pypi.python.org/packages/source/r/redis/redis-2.10.5.tar.gz"
|
|
sha256 "5dfbae6acfc54edf0a7a415b99e0b21c0a3c27a7f787b292eea727b1facc5533"
|
|
end
|
|
|
|
# Upstream PR for Erlang 18.1
|
|
patch do
|
|
url "https://github.com/discoproject/disco/pull/637.patch"
|
|
sha256 "97336a33ed115e476ec3aba0692236c4a9e22f17605fd9057ad415772a0f73ec"
|
|
end
|
|
|
|
conflicts_with "mono", :because => "both install `disco` binaries"
|
|
|
|
def install
|
|
ENV["PYTHONPATH"] = libexec/"vendor/lib/python2.7/site-packages"
|
|
|
|
# Modifies config for single-node operation.
|
|
inreplace "conf/gen.settings.sh", /(DDFS_.*_REPLICAS *= * )\d+/, "\\11"
|
|
|
|
inreplace "Makefile" do |s|
|
|
s.change_make_var! "prefix", prefix
|
|
s.change_make_var! "sysconfdir", etc
|
|
s.change_make_var! "localstatedir", var
|
|
if build.with? "test"
|
|
s.gsub! "(cd lib && python setup.py install --user)",
|
|
"(cd lib && python setup.py install --user --prefix=)"
|
|
s.gsub! "(cd lib/test && pip install nose --user && PATH=${PATH}:~/.local/bin nosetests)",
|
|
"(cd lib/test && PATH=${PATH}:#{libexec}/vendor/bin nosetests)"
|
|
end
|
|
end
|
|
|
|
system "make"
|
|
|
|
if build.with? "test"
|
|
resources.each do |r|
|
|
r.stage do
|
|
system "python", *Language::Python.setup_install_args(libexec/"vendor")
|
|
end
|
|
end
|
|
system "make", "test"
|
|
end
|
|
|
|
ENV.deparallelize { system "make", "install" }
|
|
prefix.install %w[contrib doc examples]
|
|
|
|
bin.env_script_all_files(libexec/"bin", :PYTHONPATH => ENV["PYTHONPATH"])
|
|
end
|
|
|
|
def post_install
|
|
# Fix the config file to point at the linked files, not into the Cellar.
|
|
if File.read(etc/"disco/settings.py").include?(prefix)
|
|
inreplace etc/"disco/settings.py", prefix, HOMEBREW_PREFIX
|
|
end
|
|
end
|
|
|
|
def caveats
|
|
<<-EOS.undent
|
|
Please copy #{etc}/disco/settings.py to ~/.disco and edit it if necessary. The
|
|
DDFS_*_REPLICA settings have been set to 1 assuming a single-machine install.
|
|
Please see https://disco.readthedocs.org/en/latest/start/install.html for further
|
|
instructions.
|
|
EOS
|
|
end
|
|
|
|
test do
|
|
assert_match version.to_s, shell_output("#{bin}/disco client_version")
|
|
end
|
|
end
|