summaryrefslogtreecommitdiffstats
path: root/etherpad/bin/rebuildjar.sh
diff options
context:
space:
mode:
Diffstat (limited to 'etherpad/bin/rebuildjar.sh')
-rwxr-xr-xetherpad/bin/rebuildjar.sh161
1 files changed, 161 insertions, 0 deletions
diff --git a/etherpad/bin/rebuildjar.sh b/etherpad/bin/rebuildjar.sh
new file mode 100755
index 0000000..d32d994
--- /dev/null
+++ b/etherpad/bin/rebuildjar.sh
@@ -0,0 +1,161 @@
+#!/bin/bash -e
+
+# Copyright 2009 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bin/java-version.sh
+
+if [ -z "$JAR" ]; then
+ if [ ! -z $(which fastjar 2>/dev/null) ]; then
+ # http://lists.gnu.org/archive/html/fastjar-dev/2009-12/msg00000.html
+ version=`fastjar --version | grep fastjar | sed 's/.* //g'`
+ if [[ "$version" = "0.97" || "$version" = "0.98" ]]; then
+ echo "fastjar version $version can't build EtherPad. Falling back to standard jar."
+ JAR=jar
+ else
+ JAR=fastjar
+ fi
+ else
+ JAR=jar
+ fi
+fi
+
+[ -z "$JAVA_HOME" ] && read -p "\$JAVA_HOME is not set, please enter the path to your Java installation: " JAVA_HOME
+if [ ! -e "$JAVA_HOME" ]; then
+ echo "The path to \$JAVA_HOME ($JAVA_HOME) does not exist, please check and try again."
+ exit 1
+else
+ export JAVA_HOME
+fi
+
+[ -z "$SCALA_HOME" ] && read -p "\$SCALA_HOME is not set, please enter the path to your Scala installation: " SCALA_HOME
+if [ ! -e "$SCALA_HOME" ]; then
+ echo "The path to \$SCALA_HOME ($SCALA_HOME) does not exist, please check and try again."
+ exit 1
+else
+ export SCALA_HOME
+fi
+
+if [ -z "$SCALA" ]; then
+ if [ `which scala 2>/dev/null 1>/dev/null` ]; then
+ SCALA=`which scala`
+ echo "Using 'scala' binary found at $SCALA. Set \$SCALA to use another one."
+ elif [ -x "$SCALA_HOME/bin/scala" ]; then
+ SCALA="$SCALA_HOME/bin/scala"
+ echo "Using 'scala' binary found at $SCALA. Set \$SCALA to use another one."
+ else
+ read -p "\$SCALA is not set and the 'scala' binary could not be found, please enter the path to the file: " SCALA
+ fi
+fi
+if [ ! -x "$SCALA" ]; then
+ echo "The path to \$SCALA ($SCALA) is not an executable file, please check and try again."
+ exit 1
+else
+ export SCALA
+fi
+
+if [ -z "$JAVA" ]; then
+ if [ `which java 2>/dev/null 1>/dev/null` ]; then
+ JAVA=`which java`
+ echo "Using 'java' binary found at $JAVA. Set \$JAVA to use another one."
+ elif [ -x "$JAVA_HOME/bin/java" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+ echo "Using 'java' binary found at $JAVA. Set \$JAVA to use another one."
+ else
+ read -p "\$JAVA is not set and the 'java' binary could not be found, please enter the path to the file: " JAVA
+ fi
+fi
+if [ ! -x "$JAVA" ]; then
+ echo "The path to \$JAVA ($JAVA) is not an executeable file, please check and try again."
+ exit 1
+else
+ export JAVA
+fi
+
+[ -z "$MYSQL_CONNECTOR_JAR" ] && read -p "\$MYSQL_CONNECTOR_JAR is not set, please enter the path to the MySQL JDBC driver .jar file: " MYSQL_CONNECTOR_JAR
+if [ ! -e "$MYSQL_CONNECTOR_JAR" ]; then
+ echo "The path to \$MYSQL_CONNECTOR_JAR ($MYSQL_CONNECTOR_JAR) does not exist, please check and try again."
+ exit 1
+else
+ export MYSQL_CONNECTOR_JAR
+fi
+
+# Check for javac version. Unfortunately, javac doesn't tell you whether
+# it's Sun Java or OpenJDK, but the "java" binary that's in the same
+# directory will.
+if [ -e "$JAVA_HOME/bin/java" ]; then
+ ($JAVA_HOME/bin/java -version 2>&1) | {
+ while read file; do
+ javaver=$file
+ done
+ for word in $javaver; do
+ if [ $word != "Java" ]; then
+ echo "$JAVA_HOME/bin/java is from a non-Sun compiler, and may not be able to compile EtherPad. If you get syntax errors, you should point \$JAVA_HOME at a Sun Java JDK installation instead."
+ fi
+ break
+ done
+ }
+fi
+
+function notify {
+ if [ ! -z $(which growlnotify 2>/dev/null) ]; then
+ echo $0 finished | growlnotify
+ fi
+}
+trap notify EXIT
+
+source ../infrastructure/bin/compilecache.sh
+
+suffix="-dev";
+if [ "$1" == "prod" ]; then
+ suffix="";
+ shift;
+fi
+
+OWD=`pwd`
+cd ../infrastructure
+JAR=$JAR bin/makejar.sh $@
+
+rm -rf build/etherpad-jars
+mkdir -p build/etherpad-jars
+
+echo "including etherpad JARs..."
+
+JARFILES="echo ../etherpad/lib/*.jar"
+function genjar {
+ echo "unzipping JARs..."
+ pushd $1 >> /dev/null
+
+ for a in ../../../etherpad/lib/*.jar; do
+ $JAR xf $a
+ rm -rf META-INF/{MANIFEST.MF,NOTICE{,.txt},LICENSE{,.txt},INDEX.LIST,SUN_MICR.{RSA,SF},maven}
+ done
+
+ popd >> /dev/null
+}
+cacheonfiles JAR-etherpad "$JARFILES" genjar 1
+
+echo "updating..."
+
+pushd buildcache/JAR-etherpad >> /dev/null
+$JAR uf ../../build/appjet.jar `ls . | grep -v "^t$"`
+
+echo "done."
+
+popd >> /dev/null
+
+dst="$OWD/appjet-eth$suffix.jar"
+cp -f build/appjet.jar $dst
+cd $OWD
+echo "wrote $dst"