#!/usr/bin/env bash set -e CONFIG=$(sops -d ./values/badhouseplants/secrets.server-xray-public.yaml | yq '.files.config.entries."config.json".data' | jq) read -p "Enter fullname (Ivan Ivanov): " FULLNAME read -p "Enter email (ivan@fakemail.net): " EMAIL PASS=$(openssl rand -base64 10) export DOCKER="${CONTAINER_TOOL:-docker}" echo "Generating UUID, please wait" UUID=$(${DOCKER} run ghcr.io/xtls/xray-core:main uuid -i "${FULLNAME}") CONFIG_ENTRY=$(cat <<-EndOfMessage [ { "id": "${FULLNAME} ${PASS}", "flow": "xtls-rprx-vision", "level": 0, "email": "${EMAIL}" } ] EndOfMessage ) echo "You're about to add a following entry to the config, is it correct?" echo "${CONFIG_ENTRY}" read -p "Type 'YES' to continue " AGREE if [ "${AGREE}" != "YES" ]; then echo "Alright, goodbye" && exit 1; fi NEW_CONFIG=$(jq '.inbounds[].settings.clients += '"${CONFIG_ENTRY}"'' <<< "${CONFIG}" | jq) export NEW_CONFIG sops -d ./values/badhouseplants/secrets.server-xray-public.yaml | yq '.files.config.entries."config.json".data = strenv(NEW_CONFIG)' > ./values/badhouseplants/secrets.server-xray-public.yaml sops encrypt -i ./values/badhouseplants/secrets.server-xray-public.yaml echo "Does the diff looks correct?" helmfile -e badhouseplants -f ./installations/applications -l name=server-xray-public diff read -p "Type 'YES' to continue " AGREE if [ "${AGREE}" != "YES" ]; then echo "Alright, goodbye" && exit 1; fi export FULLNAME export BRANCH="add-$(echo $FULLNAME | sed -e 's/ /_/g')-to-xray" git checkout -b $BRANCH git add ./values/badhouseplants/secrets.server-xray-public.yaml git commit -m "xray maintenance: adding ${FULLNAME}" git push echo $UUID