mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
163 lines
4.7 KiB
Bash
Executable File
163 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# this holds for default installation
|
|
USER_HOME=~
|
|
if [ "$PROJECT_HOME" = "" ]; then
|
|
PROJECT_HOME=$USER_HOME/git
|
|
fi
|
|
|
|
if [ ! -d $PROJECT_HOME/.git ]; then
|
|
echo "Could not identify $PROJECT_HOME as git repository. Please make sure to set PROJECT_HOME to the right one."
|
|
exit
|
|
fi
|
|
|
|
echo PROJECT_HOME is $PROJECT_HOME
|
|
SERVERS_HOME=$USER_HOME/servers
|
|
|
|
# x86 or x86_64 should work for most cases
|
|
ARCH=x86_64
|
|
START_DIR=`pwd`
|
|
|
|
# needed for maven to work correctly
|
|
source $USER_HOME/.bash_profile
|
|
|
|
cd $PROJECT_HOME
|
|
active_branch=$(git symbolic-ref -q HEAD)
|
|
active_branch=`basename $active_branch`
|
|
|
|
ACDIR=$SERVERS_HOME/$active_branch
|
|
|
|
MAVEN_SETTINGS=$PROJECT_HOME/configuration/maven-settings.xml
|
|
MAVEN_SETTINGS_PROXY=$PROJECT_HOME/configuration/maven-settings-proxy.xml
|
|
|
|
gwtcompile=1
|
|
testing=1
|
|
clean="clean"
|
|
offline=0
|
|
proxy=0
|
|
extra=''
|
|
|
|
if [ $# -eq 0 ]; then
|
|
echo "buildAndUpdateProduct [-g -t -o -c] [build|install|all]"
|
|
echo ""
|
|
echo "Active branch is $active_branch"
|
|
echo ""
|
|
echo "-g Disable GWT compile, no gwt files will be generated, old ones will be preserved."
|
|
echo "-t Disable tests"
|
|
echo "-o Enable offline mode (does not work for tycho surefire plugin)"
|
|
echo "-c Disable cleaning (use only if you are sure that no java file has changed)"
|
|
echo "-p Enable proxy mode"
|
|
echo ""
|
|
echo "build: builds the server code using Maven to $PROJECT_HOME (log to $START_DIR/build.log)"
|
|
echo "install: installs product and configuration to $SERVERS_HOME/$active_branch. Overwrites any configuration by using config from branch."
|
|
echo "all: calls build and then install"
|
|
exit 2
|
|
fi
|
|
|
|
options=':gtocp'
|
|
while getopts $options option
|
|
do
|
|
case $option in
|
|
g) gwtcompile=0;;
|
|
t) testing=0;;
|
|
o) offline=1;;
|
|
c) clean="";;
|
|
p) proxy=1;;
|
|
\?) echo "Invalid option"
|
|
exit 2;;
|
|
esac
|
|
done
|
|
|
|
read -s -n1 -p "Currently branch $active_branch is active. Do you want to proceed (y/N): " answer
|
|
case $answer in
|
|
"Y" | "y") echo "Continuing";;
|
|
*) echo "Aborting..."
|
|
exit;;
|
|
esac
|
|
|
|
shift $((OPTIND-1))
|
|
|
|
if [[ $@ == "" ]]; then
|
|
echo "You need to specify an action [build|install|all]"
|
|
exit 2
|
|
fi
|
|
|
|
echo "Starting $@ of server..."
|
|
|
|
if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
|
|
# yield build so that we get updated product
|
|
|
|
cd $PROJECT_HOME/java
|
|
if [ $gwtcompile -eq 1 ]; then
|
|
echo "INFO: Compiling GWT (rm -rf com.sap.sailing.gwt.ui/com.sap.sailing.*)"
|
|
rm -rf com.sap.sailing.gwt.ui/com.sap.sailing.*
|
|
else
|
|
echo "INFO: GWT Compilation disabled"
|
|
extra="-Pdebug.no-gwt-compile"
|
|
fi
|
|
|
|
if [ $testing -eq 0 ]; then
|
|
echo "INFO: Skipping tests"
|
|
extra="$extra -Dmaven.test.skip=true"
|
|
fi
|
|
|
|
if [ $offline -eq 1 ]; then
|
|
echo "INFO: Activating offline mode"
|
|
extra="$extra -o"
|
|
fi
|
|
|
|
if [ $proxy -eq 1 ]; then
|
|
echo "INFO: Activating proxy profile"
|
|
extra="$extra -P no-debug.with-proxy"
|
|
MAVEN_SETTINGS=$MAVEN_SETTINGS_PROXY
|
|
else
|
|
extra="$extra -P no-debug.without-proxy"
|
|
fi
|
|
|
|
echo "Using following command: mvn $extra -fae -s $MAVEN_SETTINGS $clean install"
|
|
mvn $extra -fae -s $MAVEN_SETTINGS $clean install 2>&1 | tee $START_DIR/build.log
|
|
|
|
echo "Build complete. Do not forget to install product..."
|
|
fi
|
|
|
|
if [[ "$@" == "install" ]] || [[ "$@" == "all" ]]; then
|
|
|
|
if [ ! -d "$ACDIR/plugins" ]; then
|
|
mkdir $ACDIR/plugins
|
|
fi
|
|
|
|
if [ ! -d "$ACDIR/configuration" ]; then
|
|
mkdir $ACDIR/configuration
|
|
fi
|
|
|
|
if [ ! -d $ACDIR ]; then
|
|
echo "Could not find directory $ACDIR - perhaps you are on a wrong branch?"
|
|
exit
|
|
fi
|
|
|
|
cd $ACDIR
|
|
|
|
rm -rf $ACDIR/plugins/*.*
|
|
rm -rf $ACDIR/org.eclipse.*
|
|
rm -rf $ACDIR/configuration/org.eclipse.*
|
|
|
|
p2PluginRepository=$PROJECT_HOME/java/com.sap.sailing.feature.p2build/bin/products/raceanalysis.product.id/linux/gtk/$ARCH
|
|
cp -v $p2PluginRepository/configuration/config.ini configuration/
|
|
cp -r -v $p2PluginRepository/configuration/org.eclipse.equinox.simpleconfigurator configuration/
|
|
cp -v $p2PluginRepository/plugins/*.jar plugins/
|
|
|
|
mkdir -p configuration/jetty/etc
|
|
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty.xml configuration/jetty/etc
|
|
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties configuration/jetty/etc
|
|
cp -v $PROJECT_HOME/java/target/configuration/monitoring.properties configuration/
|
|
|
|
# Make sure mongodb configuration is active
|
|
cp -v $PROJECT_HOME/configuration/mongodb.cfg $ACDIR/
|
|
cp -rv $PROJECT_HOME/configuration/native-libraries $ACDIR/
|
|
|
|
# Make sure this script is up2date at least for the next run
|
|
cp -v $PROJECT_HOME/configuration/buildAndUpdateProduct.sh $ACDIR/
|
|
|
|
echo "Installation complete. You may now start the server using ./start"
|
|
fi
|