Compare commits

..

No commits in common. "e37bcf1ed0e134985640788fed950be3ffd253c8" and "d137f32c2fc05d813b5a04f313d8513314838cb1" have entirely different histories.

5 changed files with 15 additions and 65 deletions

View File

@ -7,7 +7,7 @@
<!-- start autogeneration tags --> <!-- start autogeneration tags -->
* `2.0.9`, `latest` * `2.0.9`, `latest`
* `2`, `2.0`, `2.0.8`, `stable`, `stable-2.0.8` * `2`, `2.0`, `2.0.8`, `stable-2.0.8`
* `1`, `1.1`, `1.1.110`, `stable-1.1.110` * `1`, `1.1`, `1.1.110`, `stable-1.1.110`
* `1.0`, `1.0.0` * `1.0`, `1.0.0`
* `0.17`, `0.17.79` * `0.17`, `0.17.79`
@ -261,20 +261,18 @@ The `server-settings.json` file may then contain the variable references like th
These are the environment variables which can be specified at container run time. These are the environment variables which can be specified at container run time.
| Variable Name | Description | Default | Available in | | Variable Name | Description | Default | Available in |
|----------------------|----------------------------------------------------------------------|----------------|--------------| | - | - | - | - |
| GENERATE_NEW_SAVE | Generate a new save if one does not exist before starting the server | false | 0.17+ | | GENERATE_NEW_SAVE | Generate a new save if one does not exist before starting the server | false | 0.17+ |
| LOAD_LATEST_SAVE | Load latest when true. Otherwise load SAVE_NAME | true | 0.17+ | | LOAD_LATEST_SAVE | Load latest when true. Otherwise load SAVE_NAME | true | 0.17+ |
| PORT | UDP port the server listens on | 34197 | 0.15+ | | PORT | UDP port the server listens on | 34197 | 0.15+ |
| BIND | IP address (v4 or v6) the server listens on (IP\[:PORT]) | | 0.15+ | | BIND | IP address (v4 or v6) the server listens on (IP\[:PORT]) | | 0.15+ |
| RCON_PORT | TCP port the rcon server listens on | 27015 | 0.15+ | | RCON_PORT | TCP port the rcon server listens on | 27015 | 0.15+ |
| SAVE_NAME | Name to use for the save file | _autosave1 | 0.17+ | | SAVE_NAME | Name to use for the save file | _autosave1 | 0.17+ |
| TOKEN | factorio.com token | | 0.17+ | | TOKEN | factorio.com token | | 0.17+ |
| UPDATE_MODS_ON_START | If mods should be updated before starting the server | | 0.17+ | | UPDATE_MODS_ON_START | If mods should be updated before starting the server | | 0.17+ |
| USERNAME | factorio.com username | | 0.17+ | | USERNAME | factorio.com username | | 0.17+ | |
| CONSOLE_LOG_LOCATION | Saves the console log to the specifies location | | | | CONSOLE_LOG_LOCATION | Saves the console log to the specifies location | |
| DLC_SPACE_AGE | Enables or disables the mods for DLC Space Age in mod-list.json | true | 2.0.8+ |
| MODS | Mod directory to use | /factorio/mods | 2.0.10+ |
**Note:** All environment variables are compared as strings **Note:** All environment variables are compared as strings

View File

@ -60,7 +60,6 @@
"2.0.8": { "2.0.8": {
"sha256": "d9594c4d552a3e4f965b188a4774da8c8b010fc23ddb0efc63b1d94818dde1ca", "sha256": "d9594c4d552a3e4f965b188a4774da8c8b010fc23ddb0efc63b1d94818dde1ca",
"tags": [ "tags": [
"stable",
"stable-2.0.8", "stable-2.0.8",
"2", "2",
"2.0", "2.0",

View File

@ -28,8 +28,7 @@ ENV PORT=34197 \
SCENARIOS=/factorio/scenarios \ SCENARIOS=/factorio/scenarios \
SCRIPTOUTPUT=/factorio/script-output \ SCRIPTOUTPUT=/factorio/script-output \
PUID="$PUID" \ PUID="$PUID" \
PGID="$PGID" \ PGID="$PGID"
DLC_SPACE_AGE="true"
SHELL ["/bin/bash", "-eo", "pipefail", "-c"] SHELL ["/bin/bash", "-eo", "pipefail", "-c"]

View File

@ -1,43 +0,0 @@
#!/bin/bash
set -eou pipefail
# Path to the mod-list.json file
MOD_LIST_FILE="$MODS/mod-list.json"
if [[ ! -f "$MOD_LIST_FILE" ]]; then
# Create the mod-list.json file if it doesn't exist
echo '{"mods":[{"name":"base","enabled":true}]}' > "$MOD_LIST_FILE"
fi
enable_mod()
{
echo "Enable mod $1 for DLC"
jq --arg mod_name "$1" 'if .mods | map(.name) | index($mod_name) then .mods |= map(if .name == $mod_name and .enabled == false then .enabled = true else . end) else . end' "$MOD_LIST_FILE" > "$MOD_LIST_FILE.tmp"
mv "$MOD_LIST_FILE.tmp" "$MOD_LIST_FILE"
}
disable_mod()
{
echo "Disable mod $1 for DLC"
jq --arg mod_name "$1" 'if .mods | map(.name) | index($mod_name) then .mods |= map(if .name == $mod_name and .enabled == true then .enabled = false else . end) else .mods += [{"name": $mod_name, "enabled": false}] end' "$MOD_LIST_FILE" > "$MOD_LIST_FILE.tmp"
mv "$MOD_LIST_FILE.tmp" "$MOD_LIST_FILE"
}
# Enable or disable DLCs if configured
if [[ ${DLC_SPACE_AGE:-} == "true" ]]; then
# Define the DLC mods
DLC_MODS=("elevated-rails" "quality" "space-age")
# Iterate over each DLC mod
for MOD in "${DLC_MODS[@]}"; do
enable_mod "$MOD"
done
else
# Define the DLC mods
DLC_MODS=("elevated-rails" "quality" "space-age")
# Iterate over each DLC mod
for MOD in "${DLC_MODS[@]}"; do
disable_mod "$MOD"
done
fi

View File

@ -43,10 +43,8 @@ if [[ ${UPDATE_MODS_ON_START:-} == "true" ]]; then
./docker-update-mods.sh ./docker-update-mods.sh
fi fi
./docker-dlc.sh
EXEC="" EXEC=""
if [[ $(id -u) == 0 ]]; then if [[ $(id -u) = 0 ]]; then
# Update the User and Group ID based on the PUID/PGID variables # Update the User and Group ID based on the PUID/PGID variables
usermod -o -u "$PUID" factorio usermod -o -u "$PUID" factorio
groupmod -o -g "$PGID" factorio groupmod -o -g "$PGID" factorio
@ -102,7 +100,6 @@ FLAGS=(\
--server-adminlist "$CONFIG/server-adminlist.json" \ --server-adminlist "$CONFIG/server-adminlist.json" \
--rcon-password "$(cat "$CONFIG/rconpw")" \ --rcon-password "$(cat "$CONFIG/rconpw")" \
--server-id /factorio/config/server-id.json \ --server-id /factorio/config/server-id.json \
--mod-directory "$MODS" \
) )
if [ -n "$CONSOLE_LOG_LOCATION" ]; then if [ -n "$CONSOLE_LOG_LOCATION" ]; then