mirror of https://github.com/sbt/sbt.git
Cleanup of launcher package to remove special casing of
JANSI. This, hopefully, will lead to better compatibility between the many console-enrichment projects, like: JLINE-scala, JLINE-1.0, JLINE-2.0 and Jansi itself. Testing to ensue shortly between 0.12.x + 0.13.x
This commit is contained in:
parent
f8e4ef438b
commit
bec43f0a55
|
|
@ -1,25 +0,0 @@
|
||||||
import sbt._
|
|
||||||
import com.typesafe.packager.Keys._
|
|
||||||
import sbt.Keys._
|
|
||||||
import com.typesafe.packager.PackagerPlugin._
|
|
||||||
|
|
||||||
|
|
||||||
object MetaPackaging {
|
|
||||||
|
|
||||||
def settings(pkg: Project): Seq[Setting[_]] = packagerSettings ++ Seq(
|
|
||||||
name := "sbt",
|
|
||||||
version <<= sbtVersion apply {
|
|
||||||
case "0.11.3" => "0.11.3-build0300"
|
|
||||||
case v => v
|
|
||||||
},
|
|
||||||
// GENERAL LINUX PACKAGING STUFFS
|
|
||||||
maintainer := "Josh Suereth <joshua.suereth@typesafe.com>",
|
|
||||||
packageSummary := "Simple Build Tool for Scala-driven builds",
|
|
||||||
packageDescription := """This meta-package provides the most up-to-date version of the SBT package.""",
|
|
||||||
debianPackageDependencies in Debian <+= (name in Debian in pkg),
|
|
||||||
// STUBBED values
|
|
||||||
wixConfig := <dummy/>,
|
|
||||||
rpmRelease := "1",
|
|
||||||
rpmVendor := "typesafe"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
sbt.version=0.12.4-RC1
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
import sbt._
|
import sbt._
|
||||||
import Keys._
|
import Keys._
|
||||||
|
|
||||||
object SbtExtras extends Build {
|
object SbtLauncherPackage extends Build {
|
||||||
// This build creates a SBT plugin with handy features *and* bundles the SBT script for distribution.
|
// This build creates a SBT plugin with handy features *and* bundles the SBT script for distribution.
|
||||||
val root = Project("sbt-packaging", file(".")) settings(Packaging.settings:_*) settings(
|
val root = Project("sbt-packaging", file(".")) settings(Packaging.settings:_*) settings(
|
||||||
sbtVersion <<= sbtVersion apply { v =>
|
sbtVersion <<= sbtVersion apply { v =>
|
||||||
sys.props.getOrElse("sbt.build.version", sys.env.getOrElse("sbt.build.version", v))
|
sys.props.getOrElse("sbt.build.version", sys.env.getOrElse("sbt.build.version", v))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
val meta = Project("metapackage", file("metapackage")) settings(MetaPackaging.settings(root):_*)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,15 @@ object Packaging {
|
||||||
val sbtLaunchJarLocation = SettingKey[File]("sbt-launch-jar-location")
|
val sbtLaunchJarLocation = SettingKey[File]("sbt-launch-jar-location")
|
||||||
val sbtLaunchJar = TaskKey[File]("sbt-launch-jar", "Resolves SBT launch jar")
|
val sbtLaunchJar = TaskKey[File]("sbt-launch-jar", "Resolves SBT launch jar")
|
||||||
|
|
||||||
val jansiJarUrl = SettingKey[String]("jansi-jar-url")
|
|
||||||
val jansiJarLocation = SettingKey[File]("jansi-jar-location")
|
|
||||||
val jansiJar = TaskKey[File]("jansi-jar", "Resolves Jansi jar")
|
|
||||||
|
|
||||||
val fixedScriptDir = SettingKey[File]("fixed-script-dir")
|
val fixedScriptDir = SettingKey[File]("fixed-script-dir")
|
||||||
val fixedLinuxScriptDir = SettingKey[File]("fixed-linux-script-dir")
|
val fixedLinuxScriptDir = SettingKey[File]("fixed-linux-script-dir")
|
||||||
val fixedUniversalScriptDir = SettingKey[File]("fixed-universal-script-dir")
|
val fixedUniversalScriptDir = SettingKey[File]("fixed-universal-script-dir")
|
||||||
val linuxFixedScripts = TaskKey[File]("linux-fixed-scripts")
|
val linuxFixedScripts = TaskKey[File]("linux-fixed-scripts")
|
||||||
val universalFixedScripts = TaskKey[File]("universal-fixed-scripts")
|
val universalFixedScripts = TaskKey[File]("universal-fixed-scripts")
|
||||||
|
|
||||||
|
val stagingDirectory = SettingKey[File]("staging-directory")
|
||||||
|
val stage = TaskKey[File]("stage")
|
||||||
|
|
||||||
def localWindowsPattern = "[organisation]/[module]/[revision]/[module].[ext]"
|
def localWindowsPattern = "[organisation]/[module]/[revision]/[module].[ext]"
|
||||||
|
|
||||||
import util.control.Exception.catching
|
import util.control.Exception.catching
|
||||||
|
|
@ -64,20 +63,6 @@ object Packaging {
|
||||||
// TODO - GPG Trust validation.
|
// TODO - GPG Trust validation.
|
||||||
file
|
file
|
||||||
},
|
},
|
||||||
jansiJarUrl := "http://repo.fusesource.com/nexus/content/groups/public/org/fusesource/jansi/jansi/1.7/jansi-1.7.jar",
|
|
||||||
jansiJarLocation <<= target apply (_ / "jansi-1.7.jar"),
|
|
||||||
jansiJar <<= (jansiJarUrl, jansiJarLocation) map { (uri, file) =>
|
|
||||||
import dispatch._
|
|
||||||
if(!file.exists) {
|
|
||||||
// oddly, some places require us to create the file before writing...
|
|
||||||
IO.touch(file)
|
|
||||||
val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(file))
|
|
||||||
try Http(url(uri) >>> writer)
|
|
||||||
finally writer.close()
|
|
||||||
}
|
|
||||||
// TODO - GPG Trust validation.
|
|
||||||
file
|
|
||||||
},
|
|
||||||
// GENERAL LINUX PACKAGING STUFFS
|
// GENERAL LINUX PACKAGING STUFFS
|
||||||
maintainer := "Josh Suereth <joshua.suereth@typesafe.com>",
|
maintainer := "Josh Suereth <joshua.suereth@typesafe.com>",
|
||||||
packageSummary := "Simple Build Tool for Scala-driven builds",
|
packageSummary := "Simple Build Tool for Scala-driven builds",
|
||||||
|
|
@ -150,25 +135,16 @@ object Packaging {
|
||||||
wixConfig <<= (sbtVersion, sourceDirectory in Windows) map makeWindowsXml,
|
wixConfig <<= (sbtVersion, sourceDirectory in Windows) map makeWindowsXml,
|
||||||
//wixFile <<= sourceDirectory in Windows map (_ / "sbt.xml"),
|
//wixFile <<= sourceDirectory in Windows map (_ / "sbt.xml"),
|
||||||
mappings in packageMsi in Windows <+= sbtLaunchJar map { f => f -> "sbt-launch.jar" },
|
mappings in packageMsi in Windows <+= sbtLaunchJar map { f => f -> "sbt-launch.jar" },
|
||||||
mappings in packageMsi in Windows <+= jansiJar map { f => f -> "jansi.jar" },
|
|
||||||
mappings in packageMsi in Windows <++= sourceDirectory in Windows map { d => Seq(
|
mappings in packageMsi in Windows <++= sourceDirectory in Windows map { d => Seq(
|
||||||
(d / "sbt.bat") -> "sbt.bat",
|
(d / "sbt.bat") -> "sbt.bat",
|
||||||
(d / "sbt") -> "sbt",
|
(d / "sbt") -> "sbt",
|
||||||
(d / "sbtconfig.txt") -> "sbtconfig.txt",
|
(d / "sbtconfig.txt") -> "sbtconfig.txt"
|
||||||
(d / "jansi-license.txt") -> "jansi-license.txt"
|
|
||||||
)},
|
)},
|
||||||
mappings in packageMsi in Windows <+= (compile in Compile, classDirectory in Compile) map { (c, d) =>
|
|
||||||
compile;
|
|
||||||
(d / "SbtJansiLaunch.class") -> "SbtJansiLaunch.class"
|
|
||||||
},
|
|
||||||
javacOptions := Seq("-source", "1.5", "-target", "1.5"),
|
javacOptions := Seq("-source", "1.5", "-target", "1.5"),
|
||||||
unmanagedJars in Compile <+= sbtLaunchJar map identity,
|
|
||||||
unmanagedJars in Compile <+= jansiJar map identity,
|
|
||||||
|
|
||||||
// Universal ZIP download install. TODO - Share the above windows code, here....
|
// Universal ZIP download install. TODO - Share the above windows code, here....
|
||||||
name in Universal := "sbt",
|
name in Universal := "sbt",
|
||||||
mappings in Universal <+= sbtLaunchJar map { _ -> "bin/sbt-launch.jar" },
|
mappings in Universal <+= sbtLaunchJar map { _ -> "bin/sbt-launch.jar" },
|
||||||
mappings in Universal <+= jansiJar map { f => f -> "bin/jansi.jar" },
|
|
||||||
mappings in Universal <++= universalFixedScripts map { d =>
|
mappings in Universal <++= universalFixedScripts map { d =>
|
||||||
Seq(
|
Seq(
|
||||||
(d / "sbt") -> "bin/sbt",
|
(d / "sbt") -> "bin/sbt",
|
||||||
|
|
@ -177,20 +153,22 @@ object Packaging {
|
||||||
},
|
},
|
||||||
mappings in Universal <++= sourceDirectory in Windows map { d => Seq(
|
mappings in Universal <++= sourceDirectory in Windows map { d => Seq(
|
||||||
(d / "sbt.bat") -> "bin/sbt.bat",
|
(d / "sbt.bat") -> "bin/sbt.bat",
|
||||||
(d / "sbt") -> "bin/win-sbt",
|
(d / "sbt") -> "bin/win-sbt"
|
||||||
(d / "jansi-license.txt") -> "jansi-license.txt"
|
|
||||||
)},
|
)},
|
||||||
mappings in Universal <+= (compile in Compile, classDirectory in Compile) map { (c, d) =>
|
|
||||||
compile;
|
|
||||||
(d / "SbtJansiLaunch.class") -> "bin/classes/SbtJansiLaunch.class"
|
|
||||||
},
|
|
||||||
// TODO - Adapt global `sbt`/`sbt-launch-lib` scripts for universal install...
|
// TODO - Adapt global `sbt`/`sbt-launch-lib` scripts for universal install...
|
||||||
|
|
||||||
// Misccelaneous publishing stuff...
|
// Misccelaneous publishing stuff...
|
||||||
projectID in Debian <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
projectID in Debian <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
||||||
projectID in Windows <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
projectID in Windows <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
||||||
projectID in Rpm <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
projectID in Rpm <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
||||||
projectID in Universal <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) }
|
projectID in Universal <<= (organization, sbtVersion) apply { (o,v) => ModuleID(o,"sbt",v) },
|
||||||
|
stagingDirectory <<= (target) apply { (t) => t / "stage" },
|
||||||
|
stage <<= (stagingDirectory, mappings in Universal) map { (dir, m) =>
|
||||||
|
val files = for((file, name) <- m)
|
||||||
|
yield file -> (dir / name)
|
||||||
|
IO copy files
|
||||||
|
dir
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
def makeWindowsXml(sbtVersion: String, sourceDir: File): scala.xml.Node = {
|
def makeWindowsXml(sbtVersion: String, sourceDir: File): scala.xml.Node = {
|
||||||
|
|
@ -229,11 +207,6 @@ object Packaging {
|
||||||
</Directory>
|
</Directory>
|
||||||
<Directory Id='ProgramFilesFolder' Name='PFiles'>
|
<Directory Id='ProgramFilesFolder' Name='PFiles'>
|
||||||
<Directory Id='INSTALLDIR' Name='sbt'>
|
<Directory Id='INSTALLDIR' Name='sbt'>
|
||||||
<Directory Id='classes_dir' Name='classes'>
|
|
||||||
<Component Id='JansiLaunch' Guid='*'>
|
|
||||||
<File Id='jansi_launch' Name='SbtJansiLaunch.class' DiskId='1' Source='SbtJansiLaunch.class' />
|
|
||||||
</Component>
|
|
||||||
</Directory>
|
|
||||||
<Component Id='SbtLauncherScript' Guid='DE0A5B50-0792-40A9-AEE0-AB97E9F845F5'>
|
<Component Id='SbtLauncherScript' Guid='DE0A5B50-0792-40A9-AEE0-AB97E9F845F5'>
|
||||||
<File Id='sbt_bat' Name='sbt.bat' DiskId='1' Source='sbt.bat'>
|
<File Id='sbt_bat' Name='sbt.bat' DiskId='1' Source='sbt.bat'>
|
||||||
<util:PermissionEx User="Administrators" GenericAll="yes" />
|
<util:PermissionEx User="Administrators" GenericAll="yes" />
|
||||||
|
|
@ -249,10 +222,6 @@ object Packaging {
|
||||||
<util:PermissionEx User="Users" GenericAll="yes" />
|
<util:PermissionEx User="Users" GenericAll="yes" />
|
||||||
</File>
|
</File>
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id='JansiJar' Guid='3370A26B-E8AB-4143-B837-CE9A8573BF60'>
|
|
||||||
<File Id='jansi_jar' Name='jansi.jar' DiskId='1' Source='jansi.jar' />
|
|
||||||
<File Id='jansi_license' Name='jansi-license.txt' DiskId='1' Source='jansi-license.txt' />
|
|
||||||
</Component>
|
|
||||||
<Component Id='SbtLauncherJar' Guid='*'>
|
<Component Id='SbtLauncherJar' Guid='*'>
|
||||||
<File Id='sbt_launch_jar' Name='sbt-launch.jar' DiskId='1' Source='sbt-launch.jar' />
|
<File Id='sbt_launch_jar' Name='sbt-launch.jar' DiskId='1' Source='sbt-launch.jar' />
|
||||||
</Component>
|
</Component>
|
||||||
|
|
@ -282,8 +251,6 @@ object Packaging {
|
||||||
<Feature Id='SbtLauncher' Title='Sbt Launcher Script' Description='The application which downloads and launches SBT.' Level='1' Absent='disallow'>
|
<Feature Id='SbtLauncher' Title='Sbt Launcher Script' Description='The application which downloads and launches SBT.' Level='1' Absent='disallow'>
|
||||||
<ComponentRef Id='SbtLauncherScript'/>
|
<ComponentRef Id='SbtLauncherScript'/>
|
||||||
<ComponentRef Id='SbtLauncherJar' />
|
<ComponentRef Id='SbtLauncherJar' />
|
||||||
<ComponentRef Id='JansiLaunch' />
|
|
||||||
<ComponentRef Id='JansiJar' />
|
|
||||||
<ComponentRef Id='SbtConfigFile' />
|
<ComponentRef Id='SbtConfigFile' />
|
||||||
</Feature>
|
</Feature>
|
||||||
<Feature Id='SbtLauncherPathF' Title='Add SBT to windows system PATH' Description='This will append SBT to your windows system path (Requires Restart).' Level='1'>
|
<Feature Id='SbtLauncherPathF' Title='Add SBT to windows system PATH' Description='This will append SBT to your windows system path (Requires Restart).' Level='1'>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
class SbtJansiLaunch {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
org.fusesource.jansi.AnsiConsole.systemInstall();
|
|
||||||
xsbt.boot.Boot.main(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -40,7 +40,7 @@ if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS%
|
||||||
|
|
||||||
:run
|
:run
|
||||||
|
|
||||||
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%jansi.jar;%SBT_HOME%sbt-launch.jar;%SBT_HOME%classes" SbtJansiLaunch %*
|
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar;%SBT_HOME%classes" xsbt.boot.Boot %*
|
||||||
if ERRORLEVEL 1 goto error
|
if ERRORLEVEL 1 goto error
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue