mirror of https://github.com/sbt/sbt.git
Nearly ready to ship.
This commit is contained in:
parent
7f6bd6b7a7
commit
2c79fe5dda
74
bin/xsbt
74
bin/xsbt
|
|
@ -3,9 +3,11 @@
|
|||
|
||||
declare -r script_name="$(basename $BASH_SOURCE)"
|
||||
declare -r sbt_jar=/soft/inst/sbt/xsbt-launch.jar
|
||||
|
||||
jvm_opts_standard="-XX:+CMSClassUnloadingEnabled -XX:ReservedCodeCacheSize=1g"
|
||||
jvm_opts_memory="-XX:MaxPermSize=512m -Xmx4g -Xss4m"
|
||||
declare -r default_java_opts="-Dfile.encoding=UTF8"
|
||||
declare -r default_sbt_opts="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512m -Xmx2g -Xss2m"
|
||||
declare -r latest_28="2.8.1"
|
||||
declare -r latest_29="2.9.0-1"
|
||||
declare -r latest_210="2.10.0-SNAPSHOT"
|
||||
|
||||
# get completion if present
|
||||
[[ -f .sbt_completion.sh ]] && source .sbt_completion.sh
|
||||
|
|
@ -15,33 +17,64 @@ usage () {
|
|||
Usage: $script_name [options]
|
||||
|
||||
-help prints this message
|
||||
-create creates a new project
|
||||
-version <version> project initial version
|
||||
-28 latest release of scala 2.8.x
|
||||
-29 latest release of scala 2.9.x
|
||||
-210 latest snapshot of scala 2.10
|
||||
-boot path to shared sbt boot directory (default: none)
|
||||
-debug set sbt log level to debug
|
||||
-global path to directory containing global settings and plugins (default: ~/.sbt)
|
||||
-ivy path to local Ivy repository (default: ~/.ivy2)
|
||||
-nocolor disable ANSI color codes
|
||||
|
||||
-28 set scala version to $latest_28
|
||||
-29 set scala version to $latest_29
|
||||
-210 set scala version to $latest_210
|
||||
|
||||
-Dkey=val pass -Dkey=val directly to the jvm
|
||||
-J-X pass option -X directly to the jvm
|
||||
|
||||
The contents of the following environment variables, if any, will be
|
||||
passed to the jvm. Later variables take priority over earlier ones, and
|
||||
command line options (-D/-J) take priority over all of them.
|
||||
|
||||
JAVA_OPTS # defaults: $default_java_opts
|
||||
SBT_OPTS # defaults: $default_sbt_opts
|
||||
|
||||
If an environment variable is set, its defaults are not given.
|
||||
EOM
|
||||
}
|
||||
|
||||
# no args
|
||||
[[ $# -gt 0 ]] || echo "Starting $script_name: invoke with -help for other options"
|
||||
# no args - alert them there's stuff in here
|
||||
[[ $# -gt 0 ]] || {
|
||||
echo "Starting $script_name: invoke with -help for other options"
|
||||
# so it still starts if we injected any sbt commands
|
||||
set -- "shell"
|
||||
}
|
||||
|
||||
# pull -J and -D options to give to java.
|
||||
declare -a args
|
||||
declare -a java_args
|
||||
addJavaArg () {
|
||||
declare -a sbt_commands
|
||||
addJava () {
|
||||
java_args=("${java_args[@]}" "$1")
|
||||
}
|
||||
addSbt () {
|
||||
sbt_commands=("${sbt_commands[@]}" "$1")
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-help) usage; exit 1 ;;
|
||||
-D*) addJavaArg "$1"; shift ;;
|
||||
-J*) addJavaArg "${1:2}"; shift ;;
|
||||
-28) addJavaArg "-Dsbt-create.scalaVersion=2.8.1"; shift ;;
|
||||
-29) addJavaArg "-Dsbt-create.scalaVersion=2.9.1"; shift ;;
|
||||
-210) addJavaArg "-Dsbt-create.scalaVersion=2.10.0-SNAPSHOT"; shift ;;
|
||||
*) args=("${args[@]}" "$1") ; shift ;;
|
||||
-help) usage; exit 1 ;;
|
||||
-global) addJava "-Dsbt.global.base=$2"; shift 2 ;;
|
||||
-boot) addJava "-Dsbt.boot.directory=$2"; shift 2 ;;
|
||||
-ivy) addJava "-Dsbt.ivy.home=$2"; shift 2 ;;
|
||||
-nocolors) addJava "-Dsbt.log.noformat=true"; shift ;;
|
||||
-28) addJava "-Dsbt.scala.version=$latest_28"; shift ;;
|
||||
-29) addJava "-Dsbt.scala.version=$latest_29"; shift ;;
|
||||
-210) addJava "-Dsbt.scala.version=$latest_210"; shift ;;
|
||||
|
||||
-D*) addJava "$1"; shift ;;
|
||||
-J*) addJava "${1:2}"; shift ;;
|
||||
-debug) addSbt "set logLevel := Level.Debug"; shift ;;
|
||||
|
||||
*) args=("${args[@]}" "$1") ; shift ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
@ -51,9 +84,8 @@ set -- "${args[@]}"
|
|||
# run sbt
|
||||
java \
|
||||
$JAVA_OPTS \
|
||||
$jvm_opts_standard \
|
||||
$jvm_opts_memory \
|
||||
$SBT_OPTS \
|
||||
${SBT_OPTS:-$default_sbt_opts} \
|
||||
${java_args[@]} \
|
||||
-jar "$sbt_jar" \
|
||||
"${sbt_commands[@]}" \
|
||||
"$@"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ object SbtCreateConfig {
|
|||
def name = prop("sbt-create.name", "project-name-here")
|
||||
def organization = prop("sbt-create.organization", "your.organization.here")
|
||||
def version = prop("sbt-create.version", "0.1-SNAPSHOT")
|
||||
def scalaVersion = prop("sbt-create.scalaVersion", "2.9.0-1")
|
||||
def scalaVersion = prop("sbt.scala.version", "2.9.0-1")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package template
|
|||
|
||||
object Main {
|
||||
def main(args: Array[String]): Unit = {
|
||||
// Your code here
|
||||
args foreach println
|
||||
println("Skeleton main, reporting for duty on " + util.Properties.versionString)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue