-
Notifications
You must be signed in to change notification settings - Fork 44
/
update_check.sh
executable file
·65 lines (56 loc) · 2.04 KB
/
update_check.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env bash
set -m
# Check if we are auto-updating or not
if [ "$SEVEN_DAYS_TO_DIE_UPDATE_CHECKING" = "1" ]; then
echo "Checking Steam for updates.."
else
exit
fi
# Get the old build id (default to 0)
OLD_BUILDID=0
if [ -f "/steamcmd/7dtd/build.id" ]; then
OLD_BUILDID="$(cat /steamcmd/7dtd/build.id)"
fi
# Minimal validation for the update branch
STRING_SIZE=${#SEVEN_DAYS_TO_DIE_BRANCH}
if [ "$STRING_SIZE" -lt "1" ]; then
SEVEN_DAYS_TO_DIE_BRANCH=public
fi
# Remove the old cached app info if it exists
# if [ -f "/root/Steam/appcache/appinfo.vdf" ]; then
# rm -fr /root/Steam/appcache/appinfo.vdf
# fi
if [ -f "/app/Steam/appcache/appinfo.vdf" ]; then
rm -fr /app/Steam/appcache/appinfo.vdf
fi
# Get the new build id directly from Steam
NEW_BUILDID="$(./steamcmd/steamcmd.sh +login anonymous +app_info_update 1 +app_info_print "294420" +quit | grep -EA 1000 "^\s+\"branches\"$" | grep -EA 5 "^\s+\"$SEVEN_DAYS_TO_DIE_BRANCH\"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+\"buildid\"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | sed "s/ buildid //g" | xargs)"
# Check that we actually got a new build id
STRING_SIZE=${#NEW_BUILDID}
if [ "$STRING_SIZE" -lt "6" ]; then
echo "Error getting latest server build id from Steam, automatic updates disabled.."
exit
fi
# Skip update checking if this is the first time
if [ ! -f "/steamcmd/7dtd/build.id" ]; then
echo "First time running update check (server build id not found), skipping update.."
echo $NEW_BUILDID > /steamcmd/7dtd/build.id
exit
else
STRING_SIZE=${#OLD_BUILDID}
if [ "$STRING_SIZE" -lt "6" ]; then
echo "First time running update check (server build id empty), skipping update.."
echo $NEW_BUILDID > /steamcmd/7dtd/build.id
exit
fi
fi
# Check if the builds match and quit if so
if [ "$OLD_BUILDID" = "$NEW_BUILDID" ]; then
echo "Build id $OLD_BUILDID is already the latest, skipping update.."
exit
else
echo "Latest server build id ($NEW_BUILDID) is newer than the current one ($OLD_BUILDID), waiting for client update.."
echo $NEW_BUILDID > /steamcmd/7dtd/build.id
/app/shutdown.sh
exit
fi