generated from oci/template
66 lines
2.4 KiB
Bash
66 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
## TOOOTTALLY NOT AI GENERATED NOTHING TO SEE HERE
|
||
|
# real note, this was because I normally program in
|
||
|
# golang and really, *really* didnt want to have to write
|
||
|
# and maintain a binary in a language many people dont
|
||
|
# want to use simply because google made it...
|
||
|
# shell scripts are typically known by docker hosters so...
|
||
|
|
||
|
# Define file URLs and their associated positions
|
||
|
file_urls=(
|
||
|
"https://github.com/resonite-modding-group/ResoniteModLoader/releases/latest/download/ResoniteModLoader.dll /data/resonite/Headless/Libraries/ResoniteModLoader.dll"
|
||
|
"https://github.com/resonite-modding-group/ResoniteModLoader/releases/latest/download/0Harmony.dll /data/resonite/Headless/rml_libs/0Harmony.dll"
|
||
|
)
|
||
|
|
||
|
# Function to download a file from URL to destination
|
||
|
download_file() {
|
||
|
local url="$1"
|
||
|
local destination="$2"
|
||
|
# make sure destination directory exists
|
||
|
mkdir -p "$(dirname "$destination")"
|
||
|
# Use curl to download file
|
||
|
if curl -fsSL "$url" -o "$destination"; then
|
||
|
echo "File downloaded successfully: $destination"
|
||
|
else
|
||
|
echo "Failed to download file: $destination"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Loop through each file URL and download
|
||
|
for file_url in "${file_urls[@]}"; do
|
||
|
read -r url destination <<< "$file_url"
|
||
|
# Backup existing file if exists
|
||
|
if [ -f "$destination" ]; then
|
||
|
mv "$destination" "${destination}.bak"
|
||
|
fi
|
||
|
# Download file
|
||
|
download_file "$url" "$destination"
|
||
|
done
|
||
|
|
||
|
# Download additional files from a list of URLs to /data/resonite/Headless/rml_mods
|
||
|
# shellcheck disable=SC2153
|
||
|
for url in $MOD_URLS ; do
|
||
|
destination="/data/resonite/Headless/rml_mods/$(basename "$url")"
|
||
|
# Check if file already exists, if yes, skip download
|
||
|
if [ ! -f "$destination" ]; then
|
||
|
echo "Downloading mod: $url"
|
||
|
download_file "$url" "$destination"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# if resonte mod loader is enabled, create and link rml_mods, libs, and config
|
||
|
if [ "$RESONITE_MOD_LOADER" == "true" ]; then
|
||
|
for dir in rml_mods rml_libs rml_config; do
|
||
|
if [ -d "/data/resonite/$dir" ]; then
|
||
|
continue
|
||
|
fi
|
||
|
mkdir -p "/data/resonite/Headless/$dir"
|
||
|
ln -s "/data/resonite/Headless/$dir" "/data/resonite/$dir"
|
||
|
done
|
||
|
if [ ! -f "/data/resonite/Libraries/ResoniteModLoader.dll" ]; then
|
||
|
mkdir -p "/data/resonite/Libraries"
|
||
|
ln -s "/data/resonite/Headless/Libraries/ResoniteModLoader.dll" "/data/resonite/Libraries/ResoniteModLoader.dll"
|
||
|
fi
|
||
|
fi
|