#!/bin/bash function show_title() { echo "RK_HOME: $RK_HOME" echo "O---------------------------------------------O" echo echo " $rk_name "; echo " $rk_fullname "; echo echo "O---------------------------------------------O" } function show_help { echo "usage: {rk2|rk3|sork2|sork2|cdrk2|derk|clientrk} [-help|-cmd] [ANT_ARGS]" echo " -help show this help screen" echo " -cmd show the ant command being used by the releas kit" echo " ANT_ARGS additional arguments to be passed to ant" } #determine requested release kit rk_name=$(basename "$0") rk_dirname=$(dirname "$0") export RK_HOME=$(cd "$rk_dirname/.." && pwd) if [ "$rk_name" == "rk2" ]; then rk_fullname="Release Kit for Greenstone2" elif [ "$rk_name" == "rk3" ]; then rk_fullname="Release Kit for Greenstone3" elif [ "$rk_name" == "sork2" ]; then rk_fullname="Source Code Release Kit for Greenstone2" elif [ "$rk_name" == "sork3" ]; then rk_fullname="Source Code Release Kit for Greenstone3" elif [ "$rk_name" == "cdrk2" ]; then rk_fullname="CD-ROM Release Kit for Greenstone2" elif [ "$rk_name" == "derk" ]; then rk_fullname="Documented Examples Release Kit" elif [ "$rk_name" == "clientrk" ]; then rk_fullname="Standalone Client-GLI Release Kit" else show_help exit fi #make sure ant has enough memory GSDLOS=`uname -s` if [ "x$GSDLOS" = "xDarwin" ] ; then export ANT_OPTS=-Xmx2048M shared_os_name=mac else #export ANT_OPTS=-Xmx1024M export ANT_OPTS=-Xmx2048M shared_os_name=linux fi # Generate the self-extracting JDK from the selfcontained-jdk we use to compile this GS SHARED_DIR="$RK_HOME/shared" # HOME_DIR is gs-release-builder directory HOME_DIR=$(cd "$RK_HOME/.." && pwd) if [ -d "$HOME_DIR/ext-cli/selfcontained-jdk64" ] ; then target_bitness=64 java_suffix=_x64 elif [ -d "$HOME_DIR/ext-cli/selfcontained-jdk32" ] ; then target_bitness=32 java_suffix="" fi selfcon_jdk="$HOME_DIR/ext-cli/selfcontained-jdk"* zulu_jdk="$HOME_DIR/ext-cli/selfcontained-jdk"*"/zulu-jdk"* pushd "$SHARED_DIR/$shared_os_name" if [ -f "java_bin${java_suffix}" ] ; then echo "Removing existing self-extracting java_bin${java_suffix}" rm "java_bin${java_suffix}" fi echo "@@@ About to generate self-extracting java_bin${java_suffix}" echo " in $SHARED_DIR/$shared_os_name" echo " Copying $zulu_jdk to jdk" cp -r $zulu_jdk jdk echo " Tarring the jdk folder" tar -cvf java.tar jdk echo " Removing the local jdk copy" rm -rf jdk # turn the java.tar into a self-extracting JDK if [ -e java.tar ] ; then echo " Turning java.tar into a self-extracting JDK" parent_of_7za=$SHARED_DIR/${shared_os_name}/p7z-essentials if [ "x$GSDLOS" = "xLinux" ] ; then parent_of_7za=$parent_of_7za/${target_bitness}-bit fi $parent_of_7za/7za a -sfx -mx=9 java_bin${java_suffix} java.tar echo " Removing intermediate file java.tar" rm -f java.tar echo " Ensuring execute permissions on the java_bin" chmod u+x java_bin${java_suffix} else echo "### Error: java.tar did not get generated" fi # undo pushd into release-kits/shared/os popd if [ "x$JAVACFLAGS" = "x" ] ; then echo "****" >&2 echo "Warning: Expected to have JAVACFLAGS set. Have your sourced rk3-setup.bassh?" >&2 echo "****" >&2 echo "Sleeping for 5 seconds then continuing, unless ^C is pressed" >&2 sleep 5 fi #create the command toexec="ant -lib \"`pwd`/installer/classes\" -f \"$RK_HOME/kits/$rk_name/ant-scripts/build.xml\" \"-Dbasedir=`pwd`\" \"-Drk.home=$RK_HOME\" \"-Drk.name=$rk_name\"" # Generally, an ant property can be true|on|yes vs false|off|no (or left unset) # see https://ant.apache.org/manual/properties.html#if+unless # However, the release-kit code requires envvar KEEP_SRC to be "true" in order to stop it deleting source code # set KEEP_SRC env var here or in envi/etc/tasks/snapshot/environment.pl #KEEP_SRC=true #echo "KEEP_SRC: $KEEP_SRC" if test -n $KEEP_SRC ; then toexec="$toexec \"-Dkeep.src=$KEEP_SRC\"" fi show_cmd=false #pass on the arguments while [ "$1" != "" ]; do if [ "$1" == "-help" ]; then show_help exit elif [ "$1" == "-cmd" ]; then show_cmd=true else toexec="$toexec \"$1\"" fi shift done #show the command to be executed if [ "$show_cmd" == "true" ]; then echo "" echo export JAVACFLAGS=$JAVACFLAGS echo "" echo $toexec echo "" #execute else show_title | tee ${rk_name}.out bash -c "$toexec" 2>&1 | tee -a ${rk_name}.out fi