diff options
Diffstat (limited to 'examples/scala-js/scripts')
-rwxr-xr-x | examples/scala-js/scripts/assemble-cli.sh | 96 | ||||
-rwxr-xr-x | examples/scala-js/scripts/build-all-js.sh | 15 | ||||
-rwxr-xr-x | examples/scala-js/scripts/publish-to-bintray.sh | 35 |
3 files changed, 146 insertions, 0 deletions
diff --git a/examples/scala-js/scripts/assemble-cli.sh b/examples/scala-js/scripts/assemble-cli.sh new file mode 100755 index 0000000..8d898e8 --- /dev/null +++ b/examples/scala-js/scripts/assemble-cli.sh @@ -0,0 +1,96 @@ +#! /bin/sh + +set -e + +# Assembles the CLI tools for a given Scala binary version. + +if [ $# -lt 1 ]; then + echo "Usage: $(basename $0) <binary scala version> [noclean|nobuild]" >&2 + exit 1 +fi + +BINVER=$1 +case $BINVER in + 2.10) + FULLVERS="2.10.2 2.10.3 2.10.4" + BASEVER="2.10.4" + ;; + 2.11) + FULLVERS="2.11.0 2.11.1 2.11.2 2.11.4" + BASEVER="2.11.2" # Tools do not compile for 2.11.4 (see #1215) + ;; + *) + echo "Invalid Scala version $BINVER" >&2 + exit 2 +esac + +if [ "$2" != "nobuild" ]; then + # Subshell to generate SBT commands + ( + if [ "$2" != "noclean" ]; then + echo "clean" + fi + + # Assemble cli-tools + echo "project cli" + echo "++$BASEVER" + echo "assembly" + + # Package Scala.js library + echo "project library" + echo "++$BASEVER" + echo "package" + + # Package compiler + echo "project compiler" + for i in $FULLVERS; do + echo "++$i" + echo "package" + done + ) | sbt || exit $? +fi + +# Copy stuff to right location +BASE="$(dirname $0)/.." + +# Target directories +TRG_BASE="$BASE/cli/pack" +TRG_VER="$TRG_BASE/$BINVER" +TRG_LIB="$TRG_VER/lib" +TRG_BIN="$TRG_VER/bin" + +rm -rf $TRG_VER +mkdir -p $TRG_LIB +mkdir -p $TRG_BIN + +SCALAJS_VER=$(ls $BASE/cli/target/scala-$BINVER/scalajs-cli-assembly_$BINVER-*.jar | grep -oE '[0-9]+\.[0-9]+\.[0-9]+(-SNAPSHOT|-RC[0-9]+|-M[0-9]+)?') + +cp $BASE/cli/target/scala-$BINVER/scalajs-cli-assembly_$BINVER-$SCALAJS_VER.jar $TRG_LIB +cp $BASE/library/target/scala-$BINVER/scalajs-library_$BINVER-$SCALAJS_VER.jar $TRG_LIB + +for i in $FULLVERS; do + cp $BASE/compiler/target/scala-$BINVER/scalajs-compiler_$i-$SCALAJS_VER.jar $TRG_LIB +done + +PAT="s/@SCALA_BIN_VER@/$BINVER/; s/@SCALAJS_VER@/$SCALAJS_VER/" +PREF=$BASE/cli/src/main/resources/ +for i in $PREF*; do + out=$TRG_BIN/${i#$PREF} + # Redirect sed output, since in-place edit doesn't work + # cross-platform + sed "$PAT" $i > $out + # Add executable flag if required + if [ -x $i ]; then + chmod +x $out + fi +done + +# Tar and zip the whole thing up +OUT=scalajs_$BINVER-$SCALAJS_VER + +tar cfz $TRG_BASE/$OUT.tgz --exclude '*~' -C $TRG_VER lib bin +( + if [ -f $OUT.zip ]; then rm $OUT.zip; fi + cd $TRG_VER + zip -r ../$OUT.zip -r lib bin -x '*~' +) diff --git a/examples/scala-js/scripts/build-all-js.sh b/examples/scala-js/scripts/build-all-js.sh new file mode 100755 index 0000000..de0e295 --- /dev/null +++ b/examples/scala-js/scripts/build-all-js.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +tasks="fastOptJS fullOptJS" +projects="helloworld/ reversi/ testingExample/test: testSuite/test:" + +for v in 2.11.4 2.10.4; do + echo "++$v" + echo "package" + + for p in $projects; do + for t in $tasks; do + echo "$p$t" + done + done +done | sbt diff --git a/examples/scala-js/scripts/publish-to-bintray.sh b/examples/scala-js/scripts/publish-to-bintray.sh new file mode 100755 index 0000000..3b455ea --- /dev/null +++ b/examples/scala-js/scripts/publish-to-bintray.sh @@ -0,0 +1,35 @@ +#! /bin/sh + +if [ $# -eq 1 -a "$1" = "-x" ]; then + export PUBLISH_TO_BINTRAY=true + CMD=sbt +else + echo "Showing commands that would be issued to SBT. Use -x to run" + CMD=cat +fi + +FULL_VERSIONS="2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.4" +BIN_VERSIONS="2.10.4 2.11.2" # Tools do not compile on 2.11.4 (see #1215) +SBT_VERSION="2.10.4" + +LIBS="library javalibEx jasmineTestFramework tools toolsJS testBridge stubs" + +# Publish compiler +for v in $FULL_VERSIONS; do + echo "++$v" + echo "compiler/publish" +done | $CMD + +# Package libraries +for p in $LIBS; do + for v in $BIN_VERSIONS; do + echo "++$v" + echo "$p/publish" + done | $CMD +done + +# Publish sbt-plugin +( + echo "++$SBT_VERSION" + echo "sbtPlugin/publish" +) | $CMD |