From 08788f8269d978660fc9d408fa2b0dada7a2ddfd Mon Sep 17 00:00:00 2001 From: Samuel Huang Date: Fri, 30 Aug 2024 16:24:20 +1000 Subject: [PATCH] JSON merge support --- README.md | 1 + run.sh | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 76710fa..617bf52 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ server-xray -r|--request-domain Domain name to request for letsencrypt cert -c|--cert-home Reading TLS certs from folder // -i|--stdin Read config from STDIN instead of auto generation + -j|--json '{"log":{"loglevel":"info"}' Json snippet to merge into the config -d|--debug Start in debug mode with verbose output ``` diff --git a/run.sh b/run.sh index 4ccbb93..3c10986 100755 --- a/run.sh +++ b/run.sh @@ -33,7 +33,7 @@ usage() { echo " -r|--request-domain Domain name to request for letsencrypt cert" echo " -c|--cert-home Reading TLS certs from folder //" echo " -i|--stdin Read config from STDIN instead of auto generation" - echo " -j|--json Extra json snippet needs to merge into config" + echo " -j|--json '{"log":{"loglevel":"info"}' Json snippet to merge into the config" echo " -d|--debug Start in debug mode with verbose output" } @@ -150,18 +150,6 @@ fi echo '{"log":{"loglevel":"warning"}, "inbounds":[], "outbounds":[{"protocol":"freedom"}]}' |jq .|sponge $XCONF -if [ -n "${INJECT}" ]; then - for JSON_IN in "${INJECT[@]}" - do - echo "${JSON_IN}"|jq -ec >/tmp/merge.json - if [[ $? -ne 0 ]]; then - echo "Invalid json ${JSON_IN}" - exit 1 - fi - jq -s '.[0] * .[1]' $XCONF /tmp/merge.json |sponge $XCONF - done -fi - xopt="xconf=$XCONF" xopt="$xopt,certhome=$CERTHOME" for uopt in "${UOPT[@]}" @@ -208,6 +196,18 @@ if [ -n "${SVCMD}" ]; then nginx; fi + if [ -n "${INJECT}" ]; then + for JSON_IN in "${INJECT[@]}" + do + echo "${JSON_IN}"|jq -ec >/tmp/merge.json + if [[ $? -ne 0 ]]; then + echo "Invalid json ${JSON_IN}" + exit 1 + fi + jq -s '.[0] * .[1]' $XCONF /tmp/merge.json |sponge $XCONF + done + fi + exec /usr/local/bin/xray -c $XCONF else