homebrew-core/Formula/sbt.rb
2017-04-10 07:26:44 -07:00

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