-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun.sh
More file actions
executable file
·118 lines (97 loc) · 5.43 KB
/
run.sh
File metadata and controls
executable file
·118 lines (97 loc) · 5.43 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/env bash
set -e
echo "
╔═══════════════════════════════════════════════╗
║ ║
║ _ _____________ _____ ___ ║
║ / |/ / __/_ __/ | /| / / _ | / _ \ ║
║ / / _/ / / | |/ |/ / __ |/ , _/ ║
║ /_/|_/___/ /_/ |__/|__/_/ |_/_/|_| ║
║ OFFICIAL ║
║ ║
╠═══════════════════════════════════════════════╣
║ Thanks for using our DOCKER image! Should you ║
║ have issues, please reach out or create a ║
║ github issue. Thanks! ║
║ ║
║ For more information: ║
║ github.com/netwarlan ║
╚═══════════════════════════════════════════════╝"
## Set default values if none were provided
## ==============================================
SATISFACTORY_SERVER_UPDATE_ON_START="${SATISFACTORY_SERVER_UPDATE_ON_START:-true}"
SATISFACTORY_SERVER_VALIDATE_ON_START="${SATISFACTORY_SERVER_VALIDATE_ON_START:-false}"
SATISFACTORY_SERVER_UPDATE_ONLY_THEN_STOP="${SATISFACTORY_SERVER_UPDATE_ONLY_THEN_STOP:-false}"
SATISFACTORY_SERVER_VALIDATE_ONLY_THEN_STOP="${SATISFACTORY_SERVER_VALIDATE_ONLY_THEN_STOP:-false}"
SATISFACTORY_MAXPLAYERS="${SATISFACTORY_MAXPLAYERS:-8}"
STEAMCMD_USER="${STEAMCMD_USER:-anonymous}"
STEAMCMD_PASSWORD="${STEAMCMD_PASSWORD:-}"
STEAMCMD_AUTH_CODE="${STEAMCMD_AUTH_CODE:-}"
## Validate numeric inputs
## ==============================================
if [[ ! "$SATISFACTORY_MAXPLAYERS" =~ ^[0-9]+$ ]]; then
echo "Error: SATISFACTORY_MAXPLAYERS must be a valid number"
exit 1
fi
# Link the server data directory to the one created in $DATA_DIR
mkdir -p "$DATA_DIR"
mkdir -p "/home/$GAME_USER/.config/Epic/"
test -L "/home/$GAME_USER/.config/Epic/FactoryGame" || ln -s "$DATA_DIR" "/home/$GAME_USER/.config/Epic/FactoryGame"
## Download game files only (without starting server)
## ==============================================
if [[ "$SATISFACTORY_SERVER_UPDATE_ONLY_THEN_STOP" = true ]] || [[ "$SATISFACTORY_SERVER_VALIDATE_ONLY_THEN_STOP" = true ]]; then
echo "
╔═══════════════════════════════════════════════╗
║ Downloading game files only ║
╚═══════════════════════════════════════════════╝"
if [[ "$SATISFACTORY_SERVER_VALIDATE_ONLY_THEN_STOP" = true ]]; then
VALIDATE_FLAG='validate'
else
VALIDATE_FLAG=''
fi
"$STEAMCMD_DIR/steamcmd.sh" \
+force_install_dir "$GAME_DIR" \
+login "$STEAMCMD_USER" "$STEAMCMD_PASSWORD" "$STEAMCMD_AUTH_CODE" \
+app_update "$STEAMCMD_APP" $VALIDATE_FLAG \
+quit
echo "
╔═══════════════════════════════════════════════╗
║ Game files downloaded. Stopping container. ║
╚═══════════════════════════════════════════════╝"
exit 0
fi
## Update on startup
## ==============================================
if [[ "$SATISFACTORY_SERVER_UPDATE_ON_START" = true ]] || [[ "$SATISFACTORY_SERVER_VALIDATE_ON_START" = true ]]; then
echo "
╔═══════════════════════════════════════════════╗
║ Checking for updates ║
╚═══════════════════════════════════════════════╝"
if [[ "$SATISFACTORY_SERVER_VALIDATE_ON_START" = true ]]; then
VALIDATE_FLAG='validate'
else
VALIDATE_FLAG=''
fi
"$STEAMCMD_DIR/steamcmd.sh" \
+force_install_dir "$GAME_DIR" \
+login "$STEAMCMD_USER" "$STEAMCMD_PASSWORD" "$STEAMCMD_AUTH_CODE" \
+app_update "$STEAMCMD_APP" $VALIDATE_FLAG \
+quit
fi
## Print Variables
## ==============================================
echo "
╔═══════════════════════════════════════════════╗
║ Server set with provided values ║
╚═══════════════════════════════════════════════╝"
printenv | grep SATISFACTORY || true
## Run
## ==============================================
echo "
╔═══════════════════════════════════════════════╗
║ Starting Server ║
╚═══════════════════════════════════════════════╝"
"$GAME_DIR/FactoryServer.sh" \
-unattended \
"-ini:Game:[/Script/Engine.GameSession]:MaxPlayers=$SATISFACTORY_MAXPLAYERS" \
"-ini:GameUserSettings:[/Script/Engine.GameSession]:MaxPlayers=$SATISFACTORY_MAXPLAYERS"