source: scripts/usr/local/lib/7dtd/commands/updateengine.sh@ 140

Last change on this file since 140 was 102, checked in by alloc, 10 years ago

hot'fix': updateengine will create a backup-copy of the original assembly-csharp.dll in future

File size: 3.4 KB
RevLine 
[17]1#!/bin/bash
2
[48]3# Downloads SteamCMD, downloads/updates the 7dtd engine
[17]4
5sdtdCommandUpdateengine() {
[53]6 local FORCED=no
7 local CHECKONLY=no
8 if [ "$1" = "--force" ]; then
9 FORCED=yes
10 fi
[17]11
[28]12 if [ ! -e $SDTD_BASE/steamcmd ]; then
13 mkdir $SDTD_BASE/steamcmd
[17]14 cd /tmp
15 wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
[28]16 tar -xvzf steamcmd_linux.tar.gz -C $SDTD_BASE/steamcmd
17 cd $SDTD_BASE/steamcmd
[17]18 ./steamcmd.sh +quit
19 fi
20
[53]21 if [ "$1" = "--check" -o "$2" = "--check" ]; then
22 local LOCAL=$(getLocalEngineVersion)
23 local REMOTE=$(getRemoteEngineVersion)
24 if [ $REMOTE -gt $LOCAL ]; then
25 echo "Newer engine version available."
26 else
27 echo "Engine up to date."
28 fi
29 echo "Local buildid: $LOCAL"
30 echo "Available buildid: $REMOTE"
31 return
32 fi
[17]33
[53]34 for I in $(getInstanceList); do
35 if [ $(isRunning $I) -eq 1 ]; then
36 echo "At least one instance is still running (\"$I\")."
37 echo "Before updating the engine please stop all instances!"
38 return
39 fi
40 done
[17]41
[53]42 local LOCAL=$(getLocalEngineVersion)
43 local REMOTE=$(getRemoteEngineVersion)
[87]44 local LOCAL_SUPPORTED_BUILD=$(cat /usr/local/lib/7dtd/VERSION | grep "DediBuild" | cut -d\ -f2)
[35]45
[53]46 if [ "$FORCED" = "yes" -o $REMOTE -gt $LOCAL ]; then
47 echo "A newer version of the engine is available."
48 echo "Local buildid: $LOCAL"
49 echo "Available buildid: $REMOTE"
50 echo
[87]51
52 if [ "$LOCAL_SUPPORTED_BUILD" != "$REMOTE" ]; then
53 echo "WARNING!!! The currently installed version of the scripts do not support the newer dedicated server build!"
54 echo "If you continue you might not be able to start the server."
55 echo "Please wait for an updated release of the scripts or continue at your own risk."
56 echo
57 fi
58
[53]59 while : ; do
60 local CONTINUE
61 read -p "Continue? (yn) " CONTINUE
62 case $CONTINUE in
63 y)
64 echo "Updating..."
65 break
66 ;;
67 n)
68 echo "Canceled"
69 return
70 ;;
71 *)
72 echo "Wrong input"
73 esac
74 done
75
76 cd $SDTD_BASE/steamcmd
[80]77 ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login $STEAM_USER $STEAM_PASS +force_install_dir $SDTD_BASE/engine "+app_update 294420" validate +quit
[53]78
79 cp $SDTD_BASE/linux_files/engine/* $SDTD_BASE/engine/ -R
[102]80 cp $SDTD_BASE/engine/7DaysToDie_Data/Managed/Assembly-CSharp.dll $SDTD_BASE/engine/7DaysToDie_Data/Managed/Assembly-CSharp.dll_orig
[87]81 cp /usr/local/lib/7dtd/server-fixes/* $SDTD_BASE/engine/7DaysToDie_Data/Managed/
[53]82 cp $SDTD_BASE/engine/Install/32bit/SteamworksManaged.dll $SDTD_BASE/engine/7DaysToDie_Data/Managed/
83
84 chown $SDTD_USER.$SDTD_GROUP -R $SDTD_BASE/engine
[87]85
86 if [ "$LOCAL_SUPPORTED_BUILD" != "$REMOTE" ]; then
87 echo
88 echo "Also update the scripts as soon as there is a new release for this dedicated server build."
89 echo
90 fi
[53]91 else
92 echo "Engine is already at the newest build (local: $LOCAL, remote: $REMOTE)."
93 fi
[17]94}
95
96sdtdCommandUpdateengineHelp() {
[53]97 echo "Usage: $(basename $0) updateengine [--force | --check]"
[17]98 echo
[53]99 echo "Check for a newer version of engine (aka game) files of 7dtd. If there is a newer"
100 echo "version they can be updated by this command."
101 echo
102 echo "If --force is specified you are asked if you want to redownload the engine"
103 echo "even if there is no new version available."
104 echo
105 echo "If --check is specified it will only output the current local and remote build ids"
106 echo "and if an update is available."
[17]107}
108
109sdtdCommandUpdateengineDescription() {
110 echo "Update the 7dtd engine files"
111}
[53]112
113sdtdCommandUpdateengineExpects() {
114 case $1 in
115 2)
116 echo "--force --check"
117 ;;
118 esac
119}
120
Note: See TracBrowser for help on using the repository browser.