From a66f7414bc7ef56a23942079e675c53258805cee Mon Sep 17 00:00:00 2001 From: Samuel Huang Date: Tue, 24 Sep 2024 11:47:56 +1000 Subject: [PATCH] Json compact --- proxy-lsp.sh | 14 +++++++------- proxy-lwp.sh | 14 +++++++------- proxy-mwp.sh | 14 +++++++------- proxy-twp.sh | 12 ++++++------ run.sh | 32 ++++++++++++++++---------------- status.sh | 6 +++--- 6 files changed, 46 insertions(+), 46 deletions(-) diff --git a/proxy-lsp.sh b/proxy-lsp.sh index 7f7d6cf..efbd196 100755 --- a/proxy-lsp.sh +++ b/proxy-lsp.sh @@ -37,21 +37,21 @@ fi if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be numeric"; exit 1; fi -Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid, "encryption":"none", "level":0}'` +Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid,"encryption":"none","level":0}'` Jvnext=`jq -nc --arg host "${host}" --arg port "${port}" --argjson juser "${Jusers}" \ -'. += {"address":$host, "port":($port | tonumber), "users":[$juser]}' ` +'. += {"address":$host,"port":($port | tonumber),"users":[$juser]}' ` JstreamSettings=`jq -nc --arg path "${path}" \ -'. += {"network":"splithttp", "security":"none", "splithttpSettings":{"path":$path}}' ` +'. += {"network":"splithttp","security":"none","splithttpSettings":{"path":$path}}' ` Jproxy=`jq -nc --arg host "${host}" --argjson jvnext "${Jvnext}" --argjson jstreamSettings "${JstreamSettings}" \ -'. += { "tag": "proxy", "protocol":"vless", "settings":{"vnext":[$jvnext]}, "streamSettings":$jstreamSettings }' ` -Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' -Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' +'. += { "tag":"proxy","protocol":"vless","settings":{"vnext":[$jvnext]},"streamSettings":$jstreamSettings}' ` +Jdirect='{"tag":"direct","protocol":"freedom","settings":{}}' +Jblocked='{"tag":"blocked","protocol":"blackhole","settings":{}}' jroot=`jq -n --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ -'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` +'. += {"log":{"loglevel":"warning"},"outbounds":[$jproxy,$jdirect,$jblocked]}' ` echo "$jroot" exit 0 diff --git a/proxy-lwp.sh b/proxy-lwp.sh index 5718e97..c3e5f5e 100755 --- a/proxy-lwp.sh +++ b/proxy-lwp.sh @@ -37,21 +37,21 @@ fi if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be numeric"; exit 1; fi -Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid, "encryption":"none", "level":0}'` +Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid,"encryption":"none","level":0}'` Jvnext=`jq -nc --arg host "${host}" --arg port "${port}" --argjson juser "${Jusers}" \ -'. += {"address":$host, "port":($port | tonumber), "users":[$juser]}' ` +'. += {"address":$host,"port":($port | tonumber),"users":[$juser]}' ` JstreamSettings=`jq -nc --arg path "${path}" \ -'. += {"network":"ws", "security":"none", "wsSettings":{"path":$path}}' ` +'. += {"network":"ws","security":"none","wsSettings":{"path":$path}}' ` Jproxy=`jq -nc --arg host "${host}" --argjson jvnext "${Jvnext}" --argjson jstreamSettings "${JstreamSettings}" \ -'. += { "tag": "proxy", "protocol":"vless", "settings":{"vnext":[$jvnext]}, "streamSettings":$jstreamSettings }' ` -Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' -Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' +'. += { "tag":"proxy","protocol":"vless","settings":{"vnext":[$jvnext]},"streamSettings":$jstreamSettings}' ` +Jdirect='{"tag":"direct","protocol":"freedom","settings":{}}' +Jblocked='{"tag":"blocked","protocol":"blackhole","settings":{}}' jroot=`jq -n --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ -'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` +'. += {"log":{"loglevel":"warning"},"outbounds":[$jproxy,$jdirect,$jblocked]}' ` echo "$jroot" exit 0 diff --git a/proxy-mwp.sh b/proxy-mwp.sh index 9f917f1..6d4b664 100755 --- a/proxy-mwp.sh +++ b/proxy-mwp.sh @@ -40,21 +40,21 @@ fi if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be numeric"; exit 1; fi -Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid, "encryption":"none", "level":0}'` +Jusers=`jq -nc --arg uuid "${id}" '. += {"id":$uuid,"encryption":"none","level":0}'` Jvnext=`jq -nc --arg host "${host}" --arg port "${port}" --argjson juser "${Jusers}" \ -'. += {"address":$host, "port":($port | tonumber), "users":[$juser]}' ` +'. += {"address":$host,"port":($port | tonumber),"users":[$juser]}' ` JstreamSettings=`jq -nc --arg path "${path}" \ -'. += {"network":"ws", "security":"none", "wsSettings":{"path":$path}}' ` +'. += {"network":"ws","security":"none","wsSettings":{"path":$path}}' ` Jproxy=`jq -nc --arg host "${host}" --argjson jvnext "${Jvnext}" --argjson jstreamSettings "${JstreamSettings}" \ -'. += { "tag": "proxy", "protocol":"vmess", "settings":{"vnext":[$jvnext]}, "streamSettings":$jstreamSettings }' ` -Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' -Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' +'. += { "tag": proxy","protocol":"vmess","settings":{"vnext":[$jvnext]},"streamSettings":$jstreamSettings}' ` +Jdirect='{"tag":"direct","protocol":"freedom","settings":{}}' +Jblocked='{"tag":"blocked","protocol":"blackhole","settings":{}}' jroot=`jq -n --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ -'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` +'. += {"log":{"loglevel":"warning"},"outbounds":[$jproxy,$jdirect,$jblocked]}' ` echo "$jroot" exit 0 diff --git a/proxy-twp.sh b/proxy-twp.sh index ede89e2..9e9f6cb 100755 --- a/proxy-twp.sh +++ b/proxy-twp.sh @@ -40,19 +40,19 @@ if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be # User settings Jservers=`jq -nc --arg host "${host}" --arg port "${port}" --arg passwd "${passwd}" \ -'. += {"address":$host, "port":($port | tonumber), "password":$passwd}' ` +'. += {"address":$host,"port":($port | tonumber),"password":$passwd}' ` # Stream Settings JstreamSettings=`jq -nc --arg path "${path}" \ -'. += {"network":"ws", "security":"none", "wsSettings":{"path":$path}}' ` +'. += {"network":"ws","security":"none","wsSettings":{"path":$path}}' ` Jproxy=`jq -nc --arg host "${host}" --argjson jservers "${Jservers}" --argjson jstreamSettings "${JstreamSettings}" \ -'. += { "tag": "proxy", "protocol":"trojan", "settings":{"servers":[$jservers]}, "streamSettings":$jstreamSettings }' ` -Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' -Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' +'. += { "tag":"proxy","protocol":"trojan","settings":{"servers":[$jservers]},"streamSettings":$jstreamSettings}' ` +Jdirect='{"tag":"direct","protocol":"freedom","settings":{}}' +Jblocked='{"tag":"blocked","protocol":"blackhole","settings":{}}' jroot=`jq -n --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ -'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` +'. += {"log":{"loglevel":"warning"},"outbounds":[$jproxy,$jdirect,$jblocked]}' ` echo "$jroot" exit 0 diff --git a/run.sh b/run.sh index 72f448a..bf306d7 100755 --- a/run.sh +++ b/run.sh @@ -102,45 +102,45 @@ while true ; do ;; --cn-direct) Jrules=`echo "${Jrules}" | jq --arg igndomain "geosite:apple-cn" \ - '.rules += [{"type":"field", "outboundTag":"direct", "domain":[$igndomain]}]'` + '.rules += [{"type":"field","outboundTag":"direct","domain":[$igndomain]}]'` Jrules=`echo "${Jrules}" | jq --arg igndomain "geosite:google-cn" \ - '.rules += [{"type":"field", "outboundTag":"direct", "domain":[$igndomain]}]'` + '.rules += [{"type":"field","outboundTag":"direct","domain":[$igndomain]}]'` Jrules=`echo "${Jrules}" | jq --arg igndomain "geosite:geolocation-cn" \ - '.rules += [{"type":"field", "outboundTag":"direct", "domain":[$igndomain]}]'` + '.rules += [{"type":"field","outboundTag":"direct","domain":[$igndomain]}]'` Jrules=`echo "${Jrules}" | jq --arg igndomain "geosite:cn" \ - '.rules += [{"type":"field", "outboundTag":"direct", "domain":[$igndomain]}]'` + '.rules += [{"type":"field","outboundTag":"direct","domain":[$igndomain]}]'` Jrules=`echo "${Jrules}" | jq --arg ignip "geoip:cn" \ - '.rules += [{"type":"field", "outboundTag":"direct", "ip":[$ignip]}]'` + '.rules += [{"type":"field","outboundTag":"direct","ip":[$ignip]}]'` shift 1 ;; --domain-direct) Jrules=`echo "${Jrules}" | jq --arg igndomain "$2" \ - '.rules += [{"type":"field", "outboundTag":"direct", "domain":[$igndomain]}]'` + '.rules += [{"type":"field","outboundTag":"direct","domain":[$igndomain]}]'` shift 2 ;; --domain-proxy) Jrules=`echo "${Jrules}" | jq --arg pxydomain "$2" \ - '.rules += [{"type":"field", "outboundTag":"proxy", "domain":[$pxydomain]}]'` + '.rules += [{"type":"field","outboundTag":"proxy","domain":[$pxydomain]}]'` shift 2 ;; --domain-block) Jrules=`echo "${Jrules}" | jq --arg blkdomain "$2" \ - '.rules += [{"type":"field", "outboundTag":"block", "domain":[$blkdomain]}]'` + '.rules += [{"type":"field","outboundTag":"block","domain":[$blkdomain]}]'` shift 2 ;; --ip-direct) Jrules=`echo "${Jrules}" | jq --arg ignip "$2" \ - '.rules += [{"type":"field", "outboundTag":"direct", "ip":[$ignip]}]'` + '.rules += [{"type":"field","outboundTag":"direct","ip":[$ignip]}]'` shift 2 ;; --ip-proxy) Jrules=`echo "${Jrules}" | jq --arg pxyip "$2" \ - '.rules += [{"type":"field", "outboundTag":"proxy", "ip":[$pxyip]}]'` + '.rules += [{"type":"field","outboundTag":"proxy","ip":[$pxyip]}]'` shift 2 ;; --ip-block) Jrules=`echo "${Jrules}" | jq --arg blkip "$2" \ - '.rules += [{"type":"field", "outboundTag":"block", "ip":[$blkip]}]'` + '.rules += [{"type":"field","outboundTag":"block","ip":[$blkip]}]'` shift 2 ;; --rules-path) @@ -191,15 +191,15 @@ if [ -z "${DNS}" ]; then fi # Add inbounds config -JibDKDEMO=`echo '{}' | jq --arg dns "${DNS}" \ -'. +={"tag": "dns-in", "port":5353, "listen":"0.0.0.0", "protocol":"dokodemo-door", "settings":{"address": $dns, "port":53, "network":"tcp,udp"}}' ` -JibSOCKS=`echo '{}' | jq '. +={"tag": "socks", "port":1080, "listen":"0.0.0.0", "protocol":"socks", "settings":{"udp":true}}' ` -JibHTTP=`echo '{}' | jq '. +={"tag": "http", "port":8123, "listen":"0.0.0.0", "protocol":"http"}' ` +JibDKDEMO=`jq -nc --arg dns "${DNS}" \ +'. +={"tag":"dns-in","port":5353,"listen":"0.0.0.0","protocol":"dokodemo-door","settings":{"address":$dns,"port":53,"network":"tcp,udp"}}' ` +JibSOCKS=`jq -nc '. +={"tag":"socks","port":1080,"listen":"0.0.0.0","protocol":"socks","settings":{"udp":true}}' ` +JibHTTP=`jq -nc '. +={"tag":"http","port":8123,"listen":"0.0.0.0","protocol":"http"}' ` cat $XCONF| jq --argjson jibdkdemo "${JibDKDEMO}" --argjson jibsocks "${JibSOCKS}" --argjson jibhttp "${JibHTTP}" \ '. += {"inbounds":[$jibdkdemo, $jibsocks, $jibhttp]}' | sponge $XCONF # Add routing config -Jrouting='{"routing": {"domainStrategy":"AsIs"}}' +Jrouting='{"routing":{"domainStrategy":"AsIs"}}' Jrouting=`echo "${Jrouting}" |jq --argjson jrules "${Jrules}" '.routing += $jrules'` cat $XCONF| jq --argjson jrouting "${Jrouting}" '. += $jrouting' | sponge $XCONF diff --git a/status.sh b/status.sh index 380e2a9..31472eb 100755 --- a/status.sh +++ b/status.sh @@ -49,9 +49,9 @@ case "${PROTOCOL}" in WPATH=`cat $XCONF | jq -r '.outbounds[0].streamSettings.wsSettings.path'` UUID=`cat $XCONF | jq -r '.outbounds[0].settings.vnext[0].users[0].id'` XNETWORK=`cat $XCONF | jq -r '.outbounds[0].streamSettings.network'` - JXURL=`echo '{}' |jq --arg xhost "${XHOST}" --arg xport "${XPORT}" '. += {"v":2, "add":$xhost, "port":$xport}' ` - JXURL=`echo ${JXURL} | jq --arg uuid "${UUID}" --arg network "${XNETWORK}" '. += {"id":$uuid, "net":$network}' ` - JXURL=`echo ${JXURL} | jq '. += {"scy":"auto", "tls":"tls"}' ` + JXURL=`echo '{}' |jq --arg xhost "${XHOST}" --arg xport "${XPORT}" '. += {"v":2,"add":$xhost,"port":$xport}' ` + JXURL=`echo ${JXURL} | jq --arg uuid "${UUID}" --arg network "${XNETWORK}" '. += {"id":$uuid,"net":$network}' ` + JXURL=`echo ${JXURL} | jq '. += {"scy":"auto","tls":"tls"}' ` if [ "${WPATH}" != "null" ]; then JXURL=`echo ${JXURL} | jq --arg wpath "${WPATH}" '. += {"path":$wpath}' ` fi