You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

44 lines
1.5 KiB

#!/usr/bin/env bash
set -euo pipefail
# This script checks the Nextcloud config.php file for the presence of 'nextcloud_web_1' in the trusted_domains array and adds it if it doesn't exist. Pre-29.0.4 installs on umbrelOS will not have the domain added via `NEXTCLOUD_TRUSTED_DOMAIN`.
# This is handled in a post-update hook to make sure we don't interfere with the Nextcloud startup process and pre-start script where config.php is being written to.
APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)"
CONFIG_PHP_FILE="${APP_DATA_DIR}/data/nextcloud/config/config.php"
DOMAIN_TO_ADD="nextcloud_web_1"
domain_exists() {
grep -q "'$DOMAIN_TO_ADD'" "$CONFIG_PHP_FILE"
}
get_highest_index() {
awk -F "=>" '/trusted_domains/ {
max = 0
while (getline && !/\),/) {
if ($1 ~ /^[[:space:]]*[0-9]+/) {
split($1, a, " ")
if (a[1] > max) max = a[1]
}
}
print max
}' "$CONFIG_PHP_FILE"
}
if domain_exists; then
echo "Domain '$DOMAIN_TO_ADD' already exists in trusted_domains."
else
echo "Domain '$DOMAIN_TO_ADD' not found. Adding it to trusted_domains..."
# Get the highest current index in the trusted_domains array
highest_index=$(get_highest_index)
# Calculate the new index to add
new_index=$((highest_index + 1))
# Add the new domain entry
sed -i "/trusted_domains/,/),/ s/),/ $new_index => '$DOMAIN_TO_ADD',\n&/" "$CONFIG_PHP_FILE"
echo "Domain '$DOMAIN_TO_ADD' added successfully."
fi