Files
ClawSkills/keycloak-hangman-lab/scripts/keycloak/kcadm

48 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# pcguard || exit 1
REMOTE_HOST="vps.git"
REMOTE_USER="root"
CONTAINER_NAME="git-kc-keycloak"
HOST_CONFIG="/root/.keycloak/kcadm.config"
CONTAINER_CONFIG="/tmp/kcadm.config"
ENV_FILE="/root/git-kc/.env"
if [[ $# -eq 0 ]]; then
ssh "$REMOTE_USER@$REMOTE_HOST" \
"docker exec -i $CONTAINER_NAME /opt/keycloak/bin/kcadm.sh --help" <&0
exit $?
fi
SUBCOMMAND="$1"
shift
ssh "$REMOTE_USER@$REMOTE_HOST" "
set -euo pipefail
mkdir -p /root/.keycloak
if [ -f $HOST_CONFIG ]; then
docker cp $HOST_CONFIG $CONTAINER_NAME:$CONTAINER_CONFIG >/dev/null 2>&1 || true
docker exec --user 0:0 $CONTAINER_NAME /bin/chmod 666 $CONTAINER_CONFIG >/dev/null 2>&1 || true
fi
if [ $(printf '%q' "$SUBCOMMAND") != config ] && [ -f $ENV_FILE ]; then
set -a
. $ENV_FILE
set +a
docker exec -i $CONTAINER_NAME /opt/keycloak/bin/kcadm.sh config credentials \
--config $CONTAINER_CONFIG \
--server http://127.0.0.1:8080 \
--realm master \
--user \"\$KC_BOOTSTRAP_ADMIN_USERNAME\" \
--password \"\$KC_BOOTSTRAP_ADMIN_PASSWORD\" >/dev/null
fi
set +e
docker exec -i $CONTAINER_NAME /opt/keycloak/bin/kcadm.sh $(printf '%q ' "$SUBCOMMAND") --config $CONTAINER_CONFIG $(printf '%q ' "$@")
status=\$?
set -e
docker cp $CONTAINER_NAME:$CONTAINER_CONFIG $HOST_CONFIG >/dev/null 2>&1 || true
exit \$status
" <&0