FactorioScripts/start_server.sh

35 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Fetch variables from config.sh
source config.sh
# Retrieves the script's directory and cd's into it.
script_dir="$(cd "$(dirname "$0")" && pwd)"
cd ${script_dir}
# 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
# Pull updated scripts from CoastalCommits.
git pull
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."
fi
# This handles automatically updating the Factorio binary.
wget https://factorio.com/get-download/stable/headless/linux64 -O factorio_headless.tar.xz
tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite
rm -f factorio_headless.tar.xz
# This checks if the ./saves/$save_name.zip save file exists or not...
if [ ! -f "./saves/${save_name}.zip" ]; then
# ...if not, create the save file
./bin/x64/factorio ${extra_params_create} --create "./saves/${save_name}.zip"
fi
# This creates a byobu session that starts the server.
byobu new-session -d -s factorio "./bin/x64/factorio ${extra_params_start_server} --start-server ./saves/${save_name}.zip"
# This attaches the current terminal to the byobu session.
# Comment this out if you don't want this functionality.
byobu attach -t factorio