#!/bin/bash ######################################################################################### ### bash <(curl -fsSL https://raw.lhy.life/discard/sing-box-update.sh) --version=1.10.3 --cmd=pm2 ######################################################################################### if [ $# != 2 ] then echo "<--version> <--cmd>" exit 1; fi ## GetArgValue ## ./script --key=value g_args=("$@") function GetArgValue() { local key="$1" local defvalue="$2" for arg in "${g_args[@]}" do if [[ "$arg" == "--$key="* ]] then echo "${arg#*=}" return fi done echo "$defvalue" } ## DOWNLOADLINK=$(curl -s "https://api.github.com/repos/SagerNet/sing-box/releases/latest" | jq -r '.assets[] | select(.browser_download_url | test("-linux-amd64.tar.gz")).browser_download_url') VERSION=$(GetArgValue "version" "") CMD=$(GetArgValue "cmd" "") mkdir -p "$HOME/apps/sing-box/data" cd "$HOME/apps/sing-box" mkdir tempdown wget -O tempdown/sing-box-$VERSION-linux-amd64.tar.gz https://github.com/SagerNet/sing-box/releases/download/v$VERSION/sing-box-$VERSION-linux-amd64.tar.gz tar -xf tempdown/sing-box-$VERSION-linux-amd64.tar.gz -C tempdown $CMD stop sing-box mv sing-box sing-box.bak mv tempdown/sing-box-$VERSION-linux-amd64/sing-box ./ chmod +x sing-box $CMD start sing-box ./sing-box version rm -rf tempdown