From 2fad446e6726aafe9fc28d444dc0105ad5fcf1c8 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 7 Apr 2017 00:56:55 -0400 Subject: [PATCH] Make offline installer optional --- CONTRIBUTING.md | 2 +- build.sbt | 18 ++++++++++++++---- src/universal/bin/sbt-launch-lib.bash | 9 ++++++--- src/universal/bin/sbt.bat | 6 ++++-- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fed9ef6e0..7597f6eb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Steps to publish ================ ``` -$ sbt -Dsbt.build.version=1.0.0-M1 +$ sbt -Dsbt.build.version=1.0.0-M1 -Dsbt.build.offline=true > universal:publish > debian:publish > rpm:publish diff --git a/build.sbt b/build.sbt index d554f90da..8843e3c7a 100644 --- a/build.sbt +++ b/build.sbt @@ -3,6 +3,12 @@ import _root_.bintray.InternalBintrayKeys._ import _root_.bintray.{BintrayRepo, Bintray} import NativePackagerHelper._ +lazy val sbtOfflineInstall = + sys.props.getOrElse("sbt.build.offline", sys.env.getOrElse("sbt.build.offline", "false")) match { + case "true" => true + case "1" => true + case _ => false + } lazy val sbtVersionToRelease = sys.props.getOrElse("sbt.build.version", sys.env.getOrElse("sbt.build.version", { sys.error("-Dsbt.build.version must be set") })) @@ -119,10 +125,14 @@ val root = (project in file(".")). val rtExportJar = (packageBin in Compile in java9rtexport).value Seq(launchJar -> "bin/sbt-launch.jar", rtExportJar -> "bin/java9-rt-export.jar") }, - mappings in Universal ++= { - val _ = (exportRepo in dist).value - directory((target in dist).value / "lib") - }, + mappings in Universal ++= (Def.taskDyn { + if (sbtOfflineInstall) + Def.task { + val _ = (exportRepo in dist).value + directory((target in dist).value / "lib") + } + else Def.task { Seq[(File, String)]() } + }).value, stage in Universal := { val old = (stage in Universal).value val sd = (stagingDirectory in Universal).value diff --git a/src/universal/bin/sbt-launch-lib.bash b/src/universal/bin/sbt-launch-lib.bash index d3ef432f8..7ef516bae 100755 --- a/src/universal/bin/sbt-launch-lib.bash +++ b/src/universal/bin/sbt-launch-lib.bash @@ -159,9 +159,12 @@ process_args () { syncPreloaded() { [[ -f "$HOME/.sbt/preloaded/org.scala-sbt/sbt/$init_sbt_version/jars/sbt.jar" ]] || { - command -v rsync >/dev/null 2>&1 && { - mkdir -p "$HOME/.sbt/preloaded" - rsync -a --ignore-existing "$sbt_home/lib/local-preloaded/" "$HOME/.sbt/preloaded" + # lib/local-preloaded exists (This is optional) + [[ -f "$sbt_home/lib/local-preloaded/" ]] && { + command -v rsync >/dev/null 2>&1 && { + mkdir -p "$HOME/.sbt/preloaded" + rsync -a --ignore-existing "$sbt_home/lib/local-preloaded/" "$HOME/.sbt/preloaded" + } } } } diff --git a/src/universal/bin/sbt.bat b/src/universal/bin/sbt.bat index 73878794e..dd85d29bf 100644 --- a/src/universal/bin/sbt.bat +++ b/src/universal/bin/sbt.bat @@ -149,8 +149,10 @@ if /I "%JAVA_VERSION%" GEQ "8" ( if %ERRORLEVEL% equ 0 ( echo %PRELOAD_SBT_JAR% if not exist %PRELOAD_SBT_JAR% ( - echo 'about to robocopy' - robocopy "%SBT_HOME%\..\lib\local-preloaded\" "%UserProfile%\.sbt\preloaded" + if exist "%SBT_HOME%\..\lib\local-preloaded\" ( + echo 'about to robocopy' + robocopy "%SBT_HOME%\..\lib\local-preloaded\" "%UserProfile%\.sbt\preloaded" + ) ) ) )