48 lines
1.4 KiB
Bash
Executable File
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
|