#!/bin/bash
die() { echo >&2 "$@" ; exit 1 ; }

DIRNAME="$(dirname $0)"
cd "$DIRNAME"

source ../env.production || die "no top levle env?"
source env.production || die "no local env?"
source "../data/keycloak/env.secrets" || die "no local secrets?"

# try to get the clients by name
CLIENT_NAME="$1"
if [ -z "$CLIENT_NAME" ]; then
	die "usage: $0 clientName"
fi

CLIENT_ID="$(docker-compose exec -T keycloak \
  /opt/keycloak/bin/kcadm.sh \
  get clients \
  --server http://localhost:8080/ \
  --user admin \
  --password "$KEYCLOAK_ADMIN_PASSWORD" \
  --realm master \
  -r "$REALM" \
| jq -r ".[] | select( .clientId == \"$CLIENT_NAME\" ).id")"

if [ -z "$CLIENT_ID" ]; then
	die "$CLIENT_NAME: no such client"
fi

echo "$0: $CLIENT_NAME = $CLIENT_ID"
docker-compose exec -T keycloak \
  /opt/keycloak/bin/kcadm.sh \
  delete "clients/$CLIENT_ID" \
  --server http://localhost:8080/ \
  --user admin \
  --realm master \
  --password "$KEYCLOAK_ADMIN_PASSWORD" \
  -r "$REALM" \
  || die "$CLIENT_NAME($CLIENT_ID): unable to remove"