More Windows build fix.
3 SCRIPT_PATH=/users/psychonic/gdc
5 # with trailing slash or undefined for system default
6 MONO_BIN_PATH=/apps/mono-2.10.9/bin/
8 DD_PATH=${SCRIPT_PATH}/dd
9 ENGINE_PATH=${DD_PATH}/${ENGINE_PATH_FROM_DD}
11 SM_PATH=${SCRIPT_PATH}/sourcemod-central
12 SMRCON_PATH=${SCRIPT_PATH}/SMRCon
14 # Do not run this file directly. It is meant to be called by other scripts
16 ENGINE_BIN=${ENGINE_PATH}/bin/engine
17 GAME_BIN=${ENGINE_PATH}/${GAME_DIR}/bin/server
18 STEAMINF=${ENGINE_PATH}/${GAME_DIR}/steam.inf
20 GDC_PATH=${SM_PATH}/tools/gdc-psyfork
21 GDC_BIN=${GDC_PATH}/Release/gdc
23 if [ "${GAMEDATA_DIR}" == "" ] ; then
24 GAMEDATA_DIR=${GAME_DIR}
27 if [ $MOD == 1 ] ; then
31 echo -e "Checking game ${GAME_DIR}...\n"
33 if [ $MOD == 0 ] && [ "$1" == "auto" ] ; then
34 UPDATE_RES=`./updatecheck.pl "${STEAMINF}"`
35 if [ $? -ne 0 ] ; then
38 EXPECTED_VER=`echo ${UPDATE_RES} | egrep -o '([0-9]+)$'`
39 echo Expecting version ${EXPECTED_VER}
42 export RDTSC_FREQUENCY="disabled"
43 export LD_LIBRARY_PATH="${ENGINE_PATH}:${ENGINE_PATH}/bin:$LD_LIBRARY_PATH"
46 if [ "$1" == "update" ] ; then
48 elif [ "$1" == "auto" ] ; then
52 if [ ${UPDATE} -eq 1 ] ; then
55 if [ "${DD_NEEDS_AUTH}" != "" ] ; then
56 if [ "${DD_GAME}" != "" ] ; then
57 DD_OPT_AUTH=`tr '\r\n' ' ' < dd-login-info.txt`
58 elif [ "${DD_APP}" != "" ] ; then
59 DD_OPT_AUTH=`tr '\r\n' ' ' < dd-login-info.txt`
61 echo "Error: neither DD_GAME nor DD_APP are set!"
66 if [ "${DD_BETA}" != "" ] ; then
67 DD_OPT_BETA="-beta ${DD_BETA}"
68 if [ "${DD_BETA_PASSWORD}" != "" ] ; then
69 DD_OPT_BETA_PASSWORD="-betapassword ${DD_BETA_PASSWORD}"
75 if [ "${DD_GAME}" != "" ] ; then
76 ${MONO_BIN_PATH}mono DepotDownloader.exe \
79 -filelist server.txt \
85 ${MONO_BIN_PATH}mono DepotDownloader.exe \
88 -filelist server.txt \
94 ${DD_OPT_BETA_PASSWORD}
101 elif [ $i == 5 ] ; then
102 echo Update failed five times; welp
106 echo -e "Update failed. Trying again in 30 seconds...\n"
111 if [ "$1" == "auto" ] ; then
112 DOWNLOADED_VER=`grep -E "^(Patch)?Version=(([0-9]\.?)+)" ${STEAMINF} | grep -Eo "([0-9]\.?)+" | sed s/[^0-9]//g`
114 if [ ${DOWNLOADED_VER} != ${EXPECTED_VER} ] ; then
115 echo Download resulted with version ${DOWNLOADED_VER}, but expected ${EXPECTED_VER}. Exiting.
120 # update game-specific
122 GAME_SCRIPT_NAME=`echo $0 | sed s/\.sh$//`
123 echo checking to see if ${GAME_SCRIPT_NAME}_repos.sh exists
124 if [ -e ${GAME_SCRIPT_NAME}_repos.sh ] ; then
125 ./${GAME_SCRIPT_NAME}_repos.sh
129 echo Updating SourceMod repo
137 for i in "${gamedata_files[@]}"
141 readelf --sections ${GAME_BIN}${BIN_EXT}.so | grep --quiet .symtab
142 if [ "${PIPESTATUS[1]}" != "0" ] ; then
146 readelf --sections ${GAME_BIN}${BIN_EXT}.so | grep --quiet .strtab
147 if [ "${PIPESTATUS[1]}" != "0" ] ; then
151 # having an issue upon exit after loading some source2007 server bins, invalid free in sendtable dtor, idk. suppress.
152 MALLOC_CHECK_=0 ${GDC_BIN} \
155 -f ${SM_PATH}/gamedata/$i \
156 -b ${GAME_BIN}${BIN_EXT}.so \
157 -x ${ENGINE_BIN}${BIN_EXT}.so \
159 -y ${ENGINE_BIN}.dll \
160 -s ${GDC_PATH}/symbols.txt \
162 echo -e "------------------------------------------------------\n"