urrverse untzierrrrrrr

This commit is contained in:
Jing Kohn 2025-11-08 16:05:20 +10:00
parent ed17a624fa
commit 3ad92e174d

View File

@ -16616,26 +16616,23 @@ main "$@"
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Helper: list WordPress sites (returns array of site names) # Helper: list WordPress sites (returns array of site names)
# Looks for wp-config.php either directly in /var/www/<domain>/ # Searches /var/www/* 2 levels deep for any folder that contains
# or one level deeper (/var/www/<domain>/public/, /var/www/<domain>/htdocs/, …) # wp-config.php plus a couple of other core files to avoid false positives.
__wp_sites() { __wp_sites() {
local sites=() local sites=()
local base="/var/www" local base="/var/www"
[[ -d $base ]] || return 0 [[ -d $base ]] || return 0
# top-level domains # use find with maxdepth 2 fast and safe
local d local wp_root
for d in "$base"/*; do while IFS= read -r -d '' wp_root; do
[[ -L $d || ! -d $d ]] && continue # skip symlinks / files # wp_root is the directory that holds wp-config.php
local domain=$(basename "$d") # we want the *domain* part immediately under /var/www/
# 1) direct install local domain
[[ -f "$d/wp-config.php" ]] && { sites+=("$domain"); continue; } domain=$(realpath --relative-to="$base" "$wp_root" 2>/dev/null | cut -d/ -f1)
# 2) common sub-folder installs (public, htdocs, html, www) [[ -n $domain && $domain != "." ]] && sites+=("$domain")
local sub done < <(find "$base" -maxdepth 2 -type f -name wp-config.php -print0 2>/dev/null | xargs -0 -I{} dirname {} | sort -u -z)
for sub in public htdocs html www; do
[[ -f "$d/$sub/wp-config.php" ]] && { sites+=("$domain"); break; }
done
done
printf '%s\n' "${sites[@]}" printf '%s\n' "${sites[@]}"
} }