added last_downloaded_version parameter

This commit is contained in:
Seaswimmer 2023-08-15 02:50:41 -04:00
parent 43974aa1bf
commit 597e42b8c4
No known key found for this signature in database
GPG key ID: 5019678FD9CF50D8

View file

@ -35,19 +35,40 @@ else
fi fi
fi fi
# This handles automatically updating the Factorio binary. # Load the last downloaded Factorio version from config.sh, if available
echo "Fetching Factorio binary..." if [ "$configpath" = "config.sh" ]; then
wget "https://factorio.com/get-download/${version}/headless/linux64" -O factorio_headless.tar.xz last_downloaded_version=$(grep -oP 'last_downloaded_version=\K[^"]*' "$configpath")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "FATAL: There is not a headless linux64 build available for the version you've selected in your ${configpath} file." last_download_version="None"
echo "FATAL: See this website for a list of all Factorio versions: https://factorio.com/download/archive/" fi
rm -f factorio_headless.tar.xz else
exit 1 last_downloaded_version="None"
fi
# Check if the last downloaded version matches the current version
if [ "$last_downloaded_version" != "$version" ] || [ "$last_downloaded_version" = "stable" ] || [ "$last_downloaded_version" = "latest" ]; then
echo "Fetching Factorio binary..."
wget "https://factorio.com/get-download/${version}/headless/linux64" -O factorio_headless.tar.xz
if [ $? -ne 0 ]; then
echo "FATAL: There is not a headless linux64 build available for the version you've selected in your ${configpath} file."
echo "FATAL: See this website for a list of all Factorio versions: https://factorio.com/download/archive/"
rm -f factorio_headless.tar.xz
exit 1
fi
echo "Extracting Factorio binary..."
tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite
echo "Factorio binary updated!"
rm -f factorio_headless.tar.xz
else
echo "Not updating Factorio binary, as the existing version matches the version stated in the configuration file."
fi
# Update the last downloaded version in the config.sh file
if [ "$configpath" = "config.sh" ]; then
sed -i "/last_downloaded_version=.*/i # This parameter is used for auto-updating the Factorio binary." "$configpath"
sed -i "/last_downloaded_version=.*/i # Do not change this parameter unless you know what you're doing!" "$configpath"
sed -i "s/last_downloaded_version=.*/last_downloaded_version=\"$version\"/" "$configpath"
fi fi
echo "Extracting Factorio binary..."
tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite
echo "Factorio binary updated!"
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...
if [ ! -f "./saves/${save_name}.zip" ]; then if [ ! -f "./saves/${save_name}.zip" ]; then
@ -61,3 +82,37 @@ byobu new-session -d -s factorio "./bin/x64/factorio ${extra_params_start_server
# This attaches the current terminal to the byobu session. # This attaches the current terminal to the byobu session.
# Comment this out if you don't want this functionality. # Comment this out if you don't want this functionality.
byobu attach -t factorio byobu attach -t factorio
# Load the last downloaded Factorio version from config.sh, if available
if [ "$configpath" = "config.sh" ]; then
last_downloaded_version=$(grep -oP 'last_downloaded_version=\K[^"]*' "$configpath")
if [ $? -ne 0 ]; then
last_download_version="None"
fi
else
last_downloaded_version="None"
fi
# Check if the last downloaded version matches the current version
if [ "$last_downloaded_version" != "$version" ] || [ "$last_downloaded_version" = "stable" ] || [ "$last_downloaded_version" = "latest" ]; then
echo "Fetching Factorio binary..."
wget "https://factorio.com/get-download/${version}/headless/linux64" -O factorio_headless.tar.xz
if [ $? -ne 0 ]; then
echo "FATAL: There is not a headless linux64 build available for the version you've selected in your ${configpath} file."
echo "FATAL: See this website for a list of all Factorio versions: https://factorio.com/download/archive/"
rm -f factorio_headless.tar.xz
exit 1
fi
echo "Extracting Factorio binary..."
tar -xf factorio_headless.tar.xz --strip-components=1 --overwrite
echo "Factorio binary updated!"
rm -f factorio_headless.tar.xz
else
echo "Not updating Factorio binary, as the existing version matches the version stated in the configuration file."
# Update the last downloaded version in the config.sh file
if [ -f "$configpath" ]; then
sed -i "s/last_downloaded_version=.*/last_downloaded_version=\"$version\"/" "$configpath"
fi
fi