diff --git a/docs/start-script-flow.drawio.png b/docs/start-script-flow.drawio.png new file mode 100644 index 00000000..01608e76 Binary files /dev/null and b/docs/start-script-flow.drawio.png differ diff --git a/start-finalSetupModconfig b/start-finalSetupModconfig index 0ba355eb..c695cc7e 100644 --- a/start-finalSetupModconfig +++ b/start-finalSetupModconfig @@ -24,4 +24,4 @@ case "X$MODCONFIG" in esac fi -exec ${SCRIPTS:-/}start-finalSetupPlugins $@ +exec ${SCRIPTS:-/}start-finalSetupMounts $@ diff --git a/start-finalSetupModpack b/start-finalSetupModpack index 7cfabefc..4b955e27 100644 --- a/start-finalSetupModpack +++ b/start-finalSetupModpack @@ -19,8 +19,13 @@ if isTrue ${REMOVE_OLD_MODS}; then ;; esac - log "Removing old mods in $remove_mods_dest..." - find $remove_mods_dest -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE}" -delete + # only try to remove existing mods dir + if [ -d "$remove_mods_dest" ]; then + log "Removing old mods in $remove_mods_dest..." + find $remove_mods_dest -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE}" -delete + else + log "Directory $remove_mods_dest does not exist; removing nothing." + fi fi # If supplied with a URL for a modpack (simple zip of jars), download it and unpack diff --git a/start-finalSetupMounts b/start-finalSetupMounts new file mode 100755 index 00000000..f56b37cb --- /dev/null +++ b/start-finalSetupMounts @@ -0,0 +1,38 @@ +#!/bin/bash + +. ${SCRIPTS:-/}start-utils + +: ${PLUGINS_SYNC_UPDATE:=true} + +isDebugging && set -x + +if [ -d /plugins ]; then + case ${TYPE} in + SPIGOT|BUKKIT|PAPER|MAGMA) + mkdir -p /data/plugins + log "Copying plugins over..." + if isTrue ${PLUGINS_SYNC_UPDATE}; then + updateArg="--update" + fi + # Copy plugins over using rsync to allow deeply nested updates of plugins + rsync -a --out-format="update:%f:Last Modified %M" --prune-empty-dirs $updateArg /plugins /data + ;; + esac +fi + +# If any modules have been provided, copy them over +if [ -d /mods ]; then + log "Copying any mods over..." + mkdir -p /data/mods + rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /mods /data +fi + +: ${COPY_CONFIG_DEST:="/data/config"} + +if [ -d /config ]; then + log "Copying any configs from /config to $COPY_CONFIG_DEST" + mkdir -p $COPY_CONFIG_DEST + rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /config/ $COPY_CONFIG_DEST +fi + +exec ${SCRIPTS:-/}start-finalSetupServerProperties $@ diff --git a/start-finalSetupPlugins b/start-finalSetupPlugins deleted file mode 100755 index d79e449a..00000000 --- a/start-finalSetupPlugins +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -. ${SCRIPTS:-/}start-utils - -: ${PLUGINS_SYNC_UPDATE:=true} - -isDebugging && set -x - -if [ -d /plugins ]; then - case ${TYPE} in - SPIGOT|BUKKIT|PAPER) - mkdir -p /data/plugins - log "Copying plugins over..." - if isTrue ${PLUGINS_SYNC_UPDATE}; then - updateArg="--update" - fi - # Copy plugins over using rsync to allow deeply nested updates of plugins - rsync -a --out-format="update:%f:Last Modified %M" --prune-empty-dirs $updateArg /plugins /data - ;; - esac -fi - -exec ${SCRIPTS:-/}start-finalSetupServerProperties $@ diff --git a/start-minecraftFinalSetup b/start-minecraftFinalSetup index 2a59c7f4..cae5041b 100644 --- a/start-minecraftFinalSetup +++ b/start-minecraftFinalSetup @@ -2,8 +2,6 @@ . ${SCRIPTS:-/}start-utils -: ${COPY_CONFIG_DEST:="/data/config"} - if [ -n "$OPS" ]; then log "Setting/adding ops" rm -rf /data/ops.txt.converted @@ -51,20 +49,6 @@ for j in $JSON_FILES; do fi done - -# If any modules have been provided, copy them over -if [ -d /mods ]; then - log "Copying any mods over..." - mkdir -p /data/mods - rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /mods /data -fi - -if [ -d /config ]; then - log "Copying any configs from /config to $COPY_CONFIG_DEST" - mkdir -p $COPY_CONFIG_DEST - rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /config/ $COPY_CONFIG_DEST -fi - EXTRA_ARGS="" # Optional disable console if versionLessThan 1.14 && [[ ${CONSOLE,,} = false ]]; then