mirror of
https://github.com/factoriotools/factorio-docker.git
synced 2024-12-28 11:58:22 +01:00
Added DLC_SPACE_AGE environment variable (#519)
* Added DLC_SPACE_AGE environment variable to enable or disable dlc related mods
Took 53 minutes
* 🎨
Took 2 minutes
This commit is contained in:
parent
d137f32c2f
commit
89ae20012e
25
README.md
25
README.md
@ -261,18 +261,19 @@ 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.
|
||||
|
||||
| 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+ |
|
||||
| LOAD_LATEST_SAVE | Load latest when true. Otherwise load SAVE_NAME | true | 0.17+ |
|
||||
| PORT | UDP port the server listens on | 34197 | 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+ |
|
||||
| SAVE_NAME | Name to use for the save file | _autosave1 | 0.17+ |
|
||||
| TOKEN | factorio.com token | | 0.17+ |
|
||||
| UPDATE_MODS_ON_START | If mods should be updated before starting the server | | 0.17+ |
|
||||
| USERNAME | factorio.com username | | 0.17+ | |
|
||||
| CONSOLE_LOG_LOCATION | Saves the console log to the specifies location | |
|
||||
| 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+ |
|
||||
| LOAD_LATEST_SAVE | Load latest when true. Otherwise load SAVE_NAME | true | 0.17+ |
|
||||
| PORT | UDP port the server listens on | 34197 | 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+ |
|
||||
| SAVE_NAME | Name to use for the save file | _autosave1 | 0.17+ |
|
||||
| TOKEN | factorio.com token | | 0.17+ |
|
||||
| UPDATE_MODS_ON_START | If mods should be updated before starting the server | | 0.17+ |
|
||||
| USERNAME | factorio.com username | | 0.17+ |
|
||||
| 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+ |
|
||||
|
||||
**Note:** All environment variables are compared as strings
|
||||
|
||||
|
38
docker/files/docker-dlc.sh
Executable file
38
docker/files/docker-dlc.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
set -eou pipefail
|
||||
|
||||
# Path to the mod-list.json file
|
||||
MOD_LIST_FILE="$MODS/mod-list.json"
|
||||
|
||||
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
|
@ -43,6 +43,8 @@ if [[ ${UPDATE_MODS_ON_START:-} == "true" ]]; then
|
||||
./docker-update-mods.sh
|
||||
fi
|
||||
|
||||
./docker-dlc.sh
|
||||
|
||||
EXEC=""
|
||||
if [[ $(id -u) = 0 ]]; then
|
||||
# Update the User and Group ID based on the PUID/PGID variables
|
||||
|
Loading…
Reference in New Issue
Block a user