Added SingBox SUB
This commit is contained in:
@ -2,6 +2,17 @@
|
|||||||
|
|
||||||
source /etc/hysteria/core/scripts/path.sh
|
source /etc/hysteria/core/scripts/path.sh
|
||||||
|
|
||||||
|
get_singbox_domain_and_port() {
|
||||||
|
if [ -f "$SINGBOX_ENV" ]; then
|
||||||
|
local domain port
|
||||||
|
domain=$(grep -E '^hysteria_DOMAIN=' "$SINGBOX_ENV" | cut -d'=' -f2)
|
||||||
|
port=$(grep -E '^hysteria_PORT=' "$SINGBOX_ENV" | cut -d'=' -f2)
|
||||||
|
echo "$domain" "$port"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
show_uri() {
|
show_uri() {
|
||||||
if [ -f "$USERS_FILE" ]; then
|
if [ -f "$USERS_FILE" ]; then
|
||||||
if systemctl is-active --quiet hysteria-server.service; then
|
if systemctl is-active --quiet hysteria-server.service; then
|
||||||
@ -9,6 +20,7 @@ show_uri() {
|
|||||||
local generate_qrcode=false
|
local generate_qrcode=false
|
||||||
local ip_version=4
|
local ip_version=4
|
||||||
local show_all=false
|
local show_all=false
|
||||||
|
local generate_singbox=false
|
||||||
|
|
||||||
while [[ "$#" -gt 0 ]]; do
|
while [[ "$#" -gt 0 ]]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
@ -16,13 +28,14 @@ show_uri() {
|
|||||||
-qr|--qrcode) generate_qrcode=true ;;
|
-qr|--qrcode) generate_qrcode=true ;;
|
||||||
-ip) ip_version="$2"; shift ;;
|
-ip) ip_version="$2"; shift ;;
|
||||||
-a|--all) show_all=true ;;
|
-a|--all) show_all=true ;;
|
||||||
|
-s|--singbox) generate_singbox=true ;;
|
||||||
*) echo "Unknown parameter passed: $1"; exit 1 ;;
|
*) echo "Unknown parameter passed: $1"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$username" ]; then
|
if [ -z "$username" ]; then
|
||||||
echo "Usage: $0 -u <username> [-qr] [-ip <4|6>] [-a]"
|
echo "Usage: $0 -u <username> [-qr] [-ip <4|6>] [-a] [-s]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -64,21 +77,10 @@ show_uri() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$generate_qrcode" = true ]; then
|
if [ "$generate_singbox" = true ] && systemctl is-active --quiet singbox.service; then
|
||||||
cols=$(tput cols)
|
read -r domain port < <(get_singbox_domain_and_port)
|
||||||
if [ -n "$URI" ]; then
|
if [ -n "$domain" ] && [ -n "$port" ]; then
|
||||||
qr1=$(echo -n "$URI" | qrencode -t UTF8 -s 3 -m 2)
|
echo -e "\nSingbox Sublink:\nhttps://$domain:$port/sub/singbox/$username/$ip_version#$username\n"
|
||||||
echo -e "\nIPv4 QR Code:\n"
|
|
||||||
echo "$qr1" | while IFS= read -r line; do
|
|
||||||
printf "%*s\n" $(( (${#line} + cols) / 2)) "$line"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ -n "$URI6" ]; then
|
|
||||||
qr2=$(echo -n "$URI6" | qrencode -t UTF8 -s 3 -m 2)
|
|
||||||
echo -e "\nIPv6 QR Code:\n"
|
|
||||||
echo "$qr2" | while IFS= read -r line; do
|
|
||||||
printf "%*s\n" $(( (${#line} + cols) / 2)) "$line"
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user