mirror of https://github.com/sbt/sbt.git
Include universal macOS sbtn
This commit is contained in:
parent
b8bb5e33fb
commit
ae1f829f9f
|
|
@ -70,13 +70,11 @@ val debianBuildId = settingKey[Int]("build id for Debian")
|
||||||
val exportRepoUsingCoursier = taskKey[File]("export Maven style repository")
|
val exportRepoUsingCoursier = taskKey[File]("export Maven style repository")
|
||||||
val exportRepoCsrDirectory = settingKey[File]("")
|
val exportRepoCsrDirectory = settingKey[File]("")
|
||||||
|
|
||||||
val x86MacPlatform = "x86_64-apple-darwin"
|
val universalMacPlatform = "universal-apple-darwin"
|
||||||
val aarch64MacPlatform = "aarch64-apple-darwin"
|
|
||||||
val x86LinuxPlatform = "x86_64-pc-linux"
|
val x86LinuxPlatform = "x86_64-pc-linux"
|
||||||
val aarch64LinuxPlatform = "aarch64-pc-linux"
|
val aarch64LinuxPlatform = "aarch64-pc-linux"
|
||||||
val x86WindowsPlatform = "x86_64-pc-win32"
|
val x86WindowsPlatform = "x86_64-pc-win32"
|
||||||
val x86MacImageName = s"sbtn-$x86MacPlatform"
|
val universalMacImageName = s"sbtn-$universalMacPlatform"
|
||||||
val aarch64MacImageName = s"sbtn-$aarch64MacPlatform"
|
|
||||||
val x86LinuxImageName = s"sbtn-$x86LinuxPlatform"
|
val x86LinuxImageName = s"sbtn-$x86LinuxPlatform"
|
||||||
val aarch64LinuxImageName = s"sbtn-$aarch64LinuxPlatform"
|
val aarch64LinuxImageName = s"sbtn-$aarch64LinuxPlatform"
|
||||||
val x86WindowsImageName = s"sbtn-$x86WindowsPlatform.exe"
|
val x86WindowsImageName = s"sbtn-$x86WindowsPlatform.exe"
|
||||||
|
|
@ -123,42 +121,30 @@ val root = (project in file(".")).
|
||||||
file
|
file
|
||||||
},
|
},
|
||||||
// update sbt.sh at root
|
// update sbt.sh at root
|
||||||
sbtnVersion := "1.9.0",
|
sbtnVersion := "1.10.0",
|
||||||
sbtnJarsBaseUrl := "https://github.com/sbt/sbtn-dist/releases/download",
|
sbtnJarsBaseUrl := "https://github.com/sbt/sbtn-dist/releases/download",
|
||||||
sbtnJarsMappings := {
|
sbtnJarsMappings := {
|
||||||
val baseUrl = sbtnJarsBaseUrl.value
|
val baseUrl = sbtnJarsBaseUrl.value
|
||||||
val v = sbtnVersion.value
|
val v = sbtnVersion.value
|
||||||
val macosX86ImageTar = s"sbtn-$x86MacPlatform-$v.tar.gz"
|
val macosUniversalImageTar = s"sbtn-$universalMacPlatform-$v.tar.gz"
|
||||||
val macosAarch64ImageTar = s"sbtn-$aarch64MacPlatform-$v.tar.gz"
|
|
||||||
val linuxX86ImageTar = s"sbtn-$x86LinuxPlatform-$v.tar.gz"
|
val linuxX86ImageTar = s"sbtn-$x86LinuxPlatform-$v.tar.gz"
|
||||||
val linuxAarch64ImageTar = s"sbtn-$aarch64LinuxPlatform-$v.tar.gz"
|
val linuxAarch64ImageTar = s"sbtn-$aarch64LinuxPlatform-$v.tar.gz"
|
||||||
val windowsImageZip = s"sbtn-$x86WindowsPlatform-$v.zip"
|
val windowsImageZip = s"sbtn-$x86WindowsPlatform-$v.zip"
|
||||||
val t = target.value
|
val t = target.value
|
||||||
val macosX86Tar = t / macosX86ImageTar
|
val macosUniversalTar = t / macosUniversalImageTar
|
||||||
val macosAarch64Tar = t / macosAarch64ImageTar
|
|
||||||
val linuxX86Tar = t / linuxX86ImageTar
|
val linuxX86Tar = t / linuxX86ImageTar
|
||||||
val linuxAarch64Tar = t / linuxAarch64ImageTar
|
val linuxAarch64Tar = t / linuxAarch64ImageTar
|
||||||
val windowsZip = t / windowsImageZip
|
val windowsZip = t / windowsImageZip
|
||||||
import dispatch.classic._
|
import dispatch.classic._
|
||||||
if(!macosX86Tar.exists && !isWindows && sbtIncludeSbtn) {
|
if(!macosUniversalTar.exists && !isWindows && sbtIncludeSbtn) {
|
||||||
IO.touch(macosX86Tar)
|
IO.touch(macosUniversalTar)
|
||||||
val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosX86Tar))
|
val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosUniversalTar))
|
||||||
try Http(url(s"$baseUrl/v$v/$macosX86ImageTar") >>> writer)
|
try Http(url(s"$baseUrl/v$v/$macosUniversalImageTar") >>> writer)
|
||||||
finally writer.close()
|
finally writer.close()
|
||||||
val platformDir = t / x86MacPlatform
|
val platformDir = t / universalMacPlatform
|
||||||
IO.createDirectory(platformDir)
|
IO.createDirectory(platformDir)
|
||||||
s"tar zxvf $macosX86Tar --directory $platformDir".!
|
s"tar zxvf $macosUniversalTar --directory $platformDir".!
|
||||||
IO.move(platformDir / "sbtn", t / x86MacImageName)
|
IO.move(platformDir / "sbtn", t / universalMacImageName)
|
||||||
}
|
|
||||||
if(!macosAarch64Tar.exists && !isWindows && sbtIncludeSbtn) {
|
|
||||||
IO.touch(macosAarch64Tar)
|
|
||||||
val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosAarch64Tar))
|
|
||||||
try Http(url(s"$baseUrl/v$v/$macosAarch64ImageTar") >>> writer)
|
|
||||||
finally writer.close()
|
|
||||||
val platformDir = t / aarch64MacPlatform
|
|
||||||
IO.createDirectory(platformDir)
|
|
||||||
s"tar zxvf $macosAarch64Tar --directory $platformDir".!
|
|
||||||
IO.move(platformDir / "sbtn", t / aarch64MacImageName)
|
|
||||||
}
|
}
|
||||||
if(!linuxX86Tar.exists && !isWindows && sbtIncludeSbtn) {
|
if(!linuxX86Tar.exists && !isWindows && sbtIncludeSbtn) {
|
||||||
IO.touch(linuxX86Tar)
|
IO.touch(linuxX86Tar)
|
||||||
|
|
@ -192,8 +178,7 @@ val root = (project in file(".")).
|
||||||
if (!sbtIncludeSbtn) Seq()
|
if (!sbtIncludeSbtn) Seq()
|
||||||
else if (isWindows) Seq(t / x86WindowsImageName -> s"bin/$x86WindowsImageName")
|
else if (isWindows) Seq(t / x86WindowsImageName -> s"bin/$x86WindowsImageName")
|
||||||
else
|
else
|
||||||
Seq(t / x86MacImageName -> s"bin/$x86MacImageName",
|
Seq(t / universalMacImageName -> s"bin/$universalMacImageName",
|
||||||
t / aarch64MacImageName -> s"bin/$aarch64MacImageName",
|
|
||||||
t / x86LinuxImageName -> s"bin/$x86LinuxImageName",
|
t / x86LinuxImageName -> s"bin/$x86LinuxImageName",
|
||||||
t / aarch64LinuxImageName -> s"bin/$aarch64LinuxImageName",
|
t / aarch64LinuxImageName -> s"bin/$aarch64LinuxImageName",
|
||||||
t / x86WindowsImageName -> s"bin/$x86WindowsImageName")
|
t / x86WindowsImageName -> s"bin/$x86WindowsImageName")
|
||||||
|
|
|
||||||
|
|
@ -65,10 +65,16 @@ private[sbt] object InstallSbtn {
|
||||||
if (Properties.isWin) "pc-win32.exe"
|
if (Properties.isWin) "pc-win32.exe"
|
||||||
else if (Properties.isLinux) "pc-linux"
|
else if (Properties.isLinux) "pc-linux"
|
||||||
else "apple-darwin"
|
else "apple-darwin"
|
||||||
val isArmArchitecture: Boolean = sys.props
|
val isArmArchitecture: Boolean = {
|
||||||
.getOrElse("os.arch", "")
|
val prop = sys.props
|
||||||
.toLowerCase(java.util.Locale.ROOT) == "aarch64"
|
.getOrElse("os.arch", "")
|
||||||
val arch = if (Properties.isLinux && isArmArchitecture) "aarch64" else "x86_64"
|
.toLowerCase(java.util.Locale.ROOT)
|
||||||
|
prop == "arm64" || prop == "aarch64"
|
||||||
|
}
|
||||||
|
val arch =
|
||||||
|
if (Properties.isWin) "x86_64"
|
||||||
|
else if (Properties.isLinux && isArmArchitecture) "aarch64"
|
||||||
|
else "universal"
|
||||||
val sbtnName = s"sbt/bin/sbtn-$arch-$bin"
|
val sbtnName = s"sbt/bin/sbtn-$arch-$bin"
|
||||||
val fis = new FileInputStream(sbtZip.toFile)
|
val fis = new FileInputStream(sbtZip.toFile)
|
||||||
val zipInputStream = new ZipInputStream(fis)
|
val zipInputStream = new ZipInputStream(fis)
|
||||||
|
|
|
||||||
6
sbt
6
sbt
|
|
@ -24,7 +24,7 @@ declare build_props_sbt_version=
|
||||||
declare use_sbtn=
|
declare use_sbtn=
|
||||||
declare no_server=
|
declare no_server=
|
||||||
declare sbtn_command="$SBTN_CMD"
|
declare sbtn_command="$SBTN_CMD"
|
||||||
declare sbtn_version="1.9.0"
|
declare sbtn_version="1.10.0"
|
||||||
|
|
||||||
### ------------------------------- ###
|
### ------------------------------- ###
|
||||||
### Helper methods for BASH scripts ###
|
### Helper methods for BASH scripts ###
|
||||||
|
|
@ -182,8 +182,8 @@ acquire_sbtn () {
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
archive_target="$p/sbtn-x86_64-apple-darwin-${sbtn_v}.tar.gz"
|
archive_target="$p/sbtn-universal-apple-darwin-${sbtn_v}.tar.gz"
|
||||||
url="https://github.com/sbt/sbtn-dist/releases/download/v${sbtn_v}/sbtn-x86_64-apple-darwin-${sbtn_v}.tar.gz"
|
url="https://github.com/sbt/sbtn-dist/releases/download/v${sbtn_v}/sbtn-universal-apple-darwin-${sbtn_v}.tar.gz"
|
||||||
elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
|
elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
|
||||||
target="$p/sbtn.exe"
|
target="$p/sbtn.exe"
|
||||||
archive_target="$p/sbtn-x86_64-pc-win32-${sbtn_v}.zip"
|
archive_target="$p/sbtn-x86_64-pc-win32-${sbtn_v}.zip"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue