#!/bin/bash

locationRemove()
{
    local idx="$1"
    local drop_password="${2:-no}"  # legacy flag kept for backwards compat

    if [[ -z "$idx" || ! "$idx" =~ ^[0-9]+$ ]]; then
        isError "locationRemove requires a numeric index"
        return 1
    fi

    local dir
    dir=$(backupLocationDir "$idx")
    if [[ ! -d "$dir" ]]; then
        isError "Location $idx does not exist at $dir"
        return 1
    fi

    local name_var="CFG_BACKUP_LOC_${idx}_NAME"
    local label="${!name_var:-Location $idx}"

    runFileOp rm -rf "$dir"

    # Best-effort unset of the now-orphaned env vars so other code in this
    # process doesn't see stale values.
    local var
    while IFS= read -r var; do
        unset "$var"
    done < <(compgen -v 2>/dev/null | grep -E "^CFG_BACKUP_LOC_${idx}_")

    isSuccessful "Location $idx '$label' removed (directory deleted: $dir)"
    if declare -f webuiGenerateBackupLocations >/dev/null 2>&1; then
        webuiGenerateBackupLocations
    fi
}
