vastly improved start_server.sh

This commit is contained in:
Seaswimmer 2023-08-14 12:21:54 -04:00
parent ad06b04ecc
commit 99933f32c3
No known key found for this signature in database
GPG key ID: 5019678FD9CF50D8

View file

@ -1,7 +1,22 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Fetch variables from config.sh # If config.sh exists, fetch variables from it
if [ -f "config.sh" ]; then
source config.sh source config.sh
echo "Loaded configuration from config.sh"
else
# If config.sh doesn't exist, check if config.sh.example exists
if [ -f "config.sh.example" ]; then
# Fetch variables from config.sh.example
echo "WARNING: config.sh file does not exist, falling back on default configuration."
source config.sh.example
echo "Loaded configuration from config.example.sh"
else
# Handle the scenario when both files are missing
echo "FATAL: Configuration files are missing! Cannot start the Factorio server."
exit 1
fi
fi
# Retrieves the script's directory and cd's into it. # Retrieves the script's directory and cd's into it.
script_dir="$(cd "$(dirname "$0")" && pwd)" script_dir="$(cd "$(dirname "$0")" && pwd)"
@ -10,15 +25,19 @@ cd ${script_dir}
# Check if the current directory is inside a Git repository. # Check if the current directory is inside a Git repository.
if [ -d .git ] || git rev-parse --is-inside-work-tree > /dev/null 2>&1 ; then if [ -d .git ] || git rev-parse --is-inside-work-tree > /dev/null 2>&1 ; then
# Pull updated scripts from CoastalCommits. # Pull updated scripts from CoastalCommits.
echo "Updating scripts..."
git pull git pull
echo "Scripts updated!"
else else
# The current directory is not part of a Git repository.
echo "WARNING: This directory is not a Git repository. Script updates will not be automatically fetched." echo "WARNING: This directory is not a Git repository. Script updates will not be automatically fetched."
fi fi
# This handles automatically updating the Factorio binary. # This handles automatically updating the Factorio binary.
echo "Fetching Factorio binary..."
wget https://factorio.com/get-download/stable/headless/linux64 -O factorio_headless.tar.xz wget https://factorio.com/get-download/stable/headless/linux64 -O factorio_headless.tar.xz
echo "Extracting Factorio binary..."
tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite
echo "Factorio binary updated!"
rm -f factorio_headless.tar.xz rm -f factorio_headless.tar.xz
# This checks if the ./saves/$save_name.zip save file exists or not... # This checks if the ./saves/$save_name.zip save file exists or not...