mirror of
https://github.com/samuelhbne/server-xray.git
synced 2025-12-17 04:14:40 +03:00
JSON merge support
This commit is contained in:
19
run.sh
19
run.sh
@@ -33,12 +33,13 @@ usage() {
|
|||||||
echo " -r|--request-domain <domain-name> Domain name to request for letsencrypt cert"
|
echo " -r|--request-domain <domain-name> Domain name to request for letsencrypt cert"
|
||||||
echo " -c|--cert-home <cert-home-dir> Reading TLS certs from folder <cert-home-dir>/<domain-name>/"
|
echo " -c|--cert-home <cert-home-dir> Reading TLS certs from folder <cert-home-dir>/<domain-name>/"
|
||||||
echo " -i|--stdin Read config from STDIN instead of auto generation"
|
echo " -i|--stdin Read config from STDIN instead of auto generation"
|
||||||
|
echo " -j|--json Extra json snippet needs to merge into config"
|
||||||
echo " -d|--debug Start in debug mode with verbose output"
|
echo " -d|--debug Start in debug mode with verbose output"
|
||||||
}
|
}
|
||||||
|
|
||||||
Jrules='{"rules":[]}'
|
Jrules='{"rules":[]}'
|
||||||
|
|
||||||
TEMP=`getopt -o u:k:r:c:di --long user:,hook:,request-domain:,cert-home:,ip-block:,domain-block:,cn-block,lx:,ls:,ms:,ts:,lsg:,lss:,lsw:,msw:,tsw:,lpg:,lps:,lpw:,mpw:,tpw:,ng-opt:,ng-proxy:,stdin,debug -n "$0" -- $@`
|
TEMP=`getopt -o u:k:r:c:j:di --long user:,hook:,request-domain:,cert-home:,ip-block:,domain-block:,cn-block,lx:,ls:,ms:,ts:,lsg:,lss:,lsw:,msw:,tsw:,lpg:,lps:,lpw:,mpw:,tpw:,ng-opt:,ng-proxy:,json:,stdin,debug -n "$0" -- $@`
|
||||||
if [ $? != 0 ] ; then usage; exit 1 ; fi
|
if [ $? != 0 ] ; then usage; exit 1 ; fi
|
||||||
|
|
||||||
eval set -- "$TEMP"
|
eval set -- "$TEMP"
|
||||||
@@ -68,6 +69,10 @@ while true ; do
|
|||||||
UOPT+=("$2")
|
UOPT+=("$2")
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
-j|--json)
|
||||||
|
INJECT+=("$2")
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
--lx|--ls|--ms|--ts|--lsg|--lss|--lsw|--msw|--tsw|--lpg|--lps|--lpw|--mpw|--tpw)
|
--lx|--ls|--ms|--ts|--lsg|--lss|--lsw|--msw|--tsw|--lpg|--lps|--lpw|--mpw|--tpw)
|
||||||
SVC=`echo $1|tr -d '\-\-'`
|
SVC=`echo $1|tr -d '\-\-'`
|
||||||
SVCMD+=("${DIR}server-${SVC}.sh $2")
|
SVCMD+=("${DIR}server-${SVC}.sh $2")
|
||||||
@@ -145,6 +150,18 @@ fi
|
|||||||
|
|
||||||
echo '{"log":{"loglevel":"warning"}, "inbounds":[], "outbounds":[{"protocol":"freedom"}]}' |jq .|sponge $XCONF
|
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="xconf=$XCONF"
|
||||||
xopt="$xopt,certhome=$CERTHOME"
|
xopt="$xopt,certhome=$CERTHOME"
|
||||||
for uopt in "${UOPT[@]}"
|
for uopt in "${UOPT[@]}"
|
||||||
|
|||||||
Reference in New Issue
Block a user