66 lines
2.3 KiB
Ruby
66 lines
2.3 KiB
Ruby
class Sbt < Formula
|
|
desc "Build tool for Scala projects"
|
|
homepage "http://www.scala-sbt.org"
|
|
url "https://dl.bintray.com/sbt/native-packages/sbt/0.13.15/sbt-0.13.15.tgz"
|
|
sha256 "b6e073d7c201741dcca92cfdd1dd3cd76c42a47dc9d8c8ead8df7117deed7aef"
|
|
|
|
devel do
|
|
url "https://dl.bintray.com/sbt/native-packages/sbt/1.0.0-M4/sbt-1.0.0-M4.tgz"
|
|
sha256 "8cb2eaabcbfeceeb65023311b08c980feff80552b22524213c71857ced2f8de7"
|
|
version "1.0.0-M4"
|
|
end
|
|
|
|
bottle :unneeded
|
|
|
|
depends_on :java => "1.6+"
|
|
|
|
def install
|
|
inreplace "bin/sbt" do |s|
|
|
s.gsub! 'etc_sbt_opts_file="${sbt_home}/conf/sbtopts"', "etc_sbt_opts_file=\"#{etc}/sbtopts\""
|
|
s.gsub! "/etc/sbt/sbtopts", "#{etc}/sbtopts"
|
|
end
|
|
|
|
inreplace "bin/sbt-launch-lib.bash" do |s|
|
|
# Upstream issue "Replace realpath with something Mac compatible"
|
|
# Reported 10 Apr 2017 https://github.com/sbt/sbt-launcher-package/issues/149
|
|
s.gsub! "$(dirname \"$(realpath \"$0\")\")", "#{libexec}/bin"
|
|
s.gsub! "$(dirname \"$sbt_bin_dir\")", libexec
|
|
|
|
# Workaround for `brew test sbt` failing to detect java -version
|
|
# Reported 10 Apr 2017 https://github.com/sbt/sbt-launcher-package/issues/150
|
|
if build.stable?
|
|
s.gsub! "[[ \"$java_version\" > \"8\" ]]", "[[ \"$java_version\" == \"9\" ]]"
|
|
end
|
|
end
|
|
|
|
libexec.install "bin"
|
|
libexec.install "lib" if build.stable? # remove `if` when devel > 1.0.0-M4
|
|
etc.install "conf/sbtopts"
|
|
|
|
(bin/"sbt").write <<-EOS.undent
|
|
#!/bin/sh
|
|
if [ -f "$HOME/.sbtconfig" ]; then
|
|
echo "Use of ~/.sbtconfig is deprecated, please migrate global settings to #{etc}/sbtopts" >&2
|
|
. "$HOME/.sbtconfig"
|
|
fi
|
|
exec "#{libexec}/bin/sbt" "$@"
|
|
EOS
|
|
end
|
|
|
|
def caveats; <<-EOS.undent
|
|
You can use $SBT_OPTS to pass additional JVM options to SBT:
|
|
SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
|
|
|
|
This formula is now using the standard lightbend sbt launcher script.
|
|
Project specific options should be placed in .sbtopts in the root of your project.
|
|
Global settings should be placed in #{etc}/sbtopts
|
|
EOS
|
|
end
|
|
|
|
test do
|
|
ENV["_JAVA_OPTIONS"] = "-Dsbt.log.noformat=true"
|
|
ENV.java_cache
|
|
output = shell_output("#{bin}/sbt sbt-version")
|
|
assert_match "[info] #{version}", output
|
|
end
|
|
end
|