#!/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") " >&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'."