Today you cannot have spaces in system properties:
$ sbt -Dfoo="bar baz" ...
It passes [-Dfoo=bar] and [baz] to java (see https://github.com/sbt/sbt/issues/2787).
This change allows you to do:
$ sbt "-Dfoo=bar baz"
which will pass ["-Dfoo=bar baz"]. And both of these two:
$ sbt "-Dfoo=bar"
$ sbt -Dfoo=bar
still work, passing [-Dfoo=bar].
Previously awk was used to grab the full Java version such as 1.8.0_91.
While this is more accurate, 1.8.0_91 is not a number that can be compared by bash, and thus JDK8 detection logics were failing.
Fixes#135
Fixessbt/sbt-launcher-package#99 formerly known as sbt/sbt#2194.
get_mem_opts() is a bash function that generates memory related
options. This change makes it return `""` the SBT_OPTS variable
contains memory-related options already.
Java is a little anti-social and attempts to lazily allocate all
of system memory, even for simple operations such as printing out
the version. This causes sbt to fail to start in environments
where resources are limited (i.e. ulimit(1)). This setup is common
on shared infrastructure such as scientific computing clusters
where because of the resource limit not being specified sbt cannot
be used.
The limit is set to 512MB which ought to be ample and is in any case
the default from sbtconfig.txt. A better patch would use the limit
specified there but it isn't clear that that is worth the effort.
This variable used to be set based on either $HOME or $script_path. However,
$script_path is no longer set, so when $HOME is unset there will be an
'dirname: missing operand' error message. $script_dir is no longer used
either, so we can safely remove it entirely.
* Use new native packaging abstractions for windows mappings.
* Update universal sbt script to be cygwin friendly
* Modify sbt.bat for universal layout
* Fix some stty icanon (no)echo bugs in launcher script.
* No set XYZ arguments allowed. BAAD sbt practice.
* No longer swaps launcher. New SBT launchers can handle old SBT.
* SBT script now uses sbt-launch-lib.bash.