45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
set -uo pipefail
|
|
|
|
APP_NAME="${1:-}"
|
|
if [[ -z "$APP_NAME" ]]; then
|
|
echo "Error: Application name is required." >&2
|
|
echo "Usage: $(basename "$0") <app-name>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
APP_ID="$(az ad app list --display-name "$APP_NAME" | jq -r '[.[].appId] | join(",")')"
|
|
if [[ "$APP_ID" =~ "," ]]; then
|
|
echo "Error: The application name '$APP_NAME' is not unique." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$APP_ID" ]]; then
|
|
echo "Error: No application found with name '$APP_NAME'." >&2
|
|
exit 1
|
|
fi
|
|
|
|
SP_ID="$(az ad sp show --id "$APP_ID" --query id -o tsv)"
|
|
|
|
if [[ -z "$SP_ID" ]]; then
|
|
echo "No service principal found for application '$APP_NAME' ($APP_ID)."
|
|
fi
|
|
|
|
# Get confirmation from user before deleting
|
|
read -p "Are you sure you want to delete application '$APP_NAME' with appId '$APP_ID' and its service principal? (y/N) " -n 1 -r
|
|
echo
|
|
if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then
|
|
echo "Aborting deletion."
|
|
exit 0
|
|
fi
|
|
|
|
if [[ -n "$SP_ID" ]]; then
|
|
az ad sp delete --id "$SP_ID"
|
|
echo "Deleted service principal with id '$SP_ID' for application '$APP_NAME' ($APP_ID)."
|
|
fi
|
|
|
|
az ad app delete --id "$APP_ID"
|
|
echo "Deleted application '$APP_NAME' with appId '$APP_ID'."
|