Compare commits

..

4 Commits

Author SHA1 Message Date
世界
eaad23b256
Bump version 2025-04-17 10:12:52 +08:00
世界
a17e8cb670
Fix urltest outbound 2025-04-17 10:12:52 +08:00
世界
02f88db709
Fix wireguard endpoint 2025-04-17 10:12:52 +08:00
世界
d6f9414c2d
release: Add openwrt packages 2025-04-17 10:12:52 +08:00

View File

@ -1,97 +1,87 @@
#!/bin/sh #!/bin/bash
set -xeuo pipefail
download_beta=false download_beta=false
download_version="" download_version=""
for arg in "$@"; do for arg in "$@"; do
if [[ "$arg" == "--beta" ]]; then if [[ "$arg" == "--beta" ]]; then
download_beta=true download_beta=true
elif [[ "$arg" == "--version" ]]; then elif [[ "$arg" == "--version" ]]; then
download_version=true download_version=true
elif [[ "$download_version" == 'true' ]]; then elif [[ "$download_version" == 'true' ]]; then
download_version="$arg" download_version="$arg"
else else
echo "Unknown argument: $arg" echo "Unknown argument: $arg"
echo "Usage: $0 [--beta] [--version <version>]" echo "Usage: $0 [--beta] [--version <version>]"
exit 1 exit 1
fi fi
done done
if [[ $(command -v dpkg) ]]; then if [[ $(command -v dpkg) ]]; then
os="linux" os="linux"
arch=$(dpkg --print-architecture) arch=$(dpkg --print-architecture)
package_suffix=".deb" package_suffix=".deb"
package_install="dpkg -i" package_install="dpkg -i"
elif [[ $(command -v dnf) ]]; then elif [[ $(command -v dnf) ]]; then
os="linux" os="linux"
arch=$(uname -m) arch=$(uname -m)
package_suffix=".rpm" package_suffix=".rpm"
package_install="dnf install -y" package_install="dnf install -y"
elif [[ $(command -v rpm) ]]; then elif [[ $(command -v rpm) ]]; then
os="linux" os="linux"
arch=$(uname -m) arch=$(uname -m)
package_suffix=".rpm" package_suffix=".rpm"
package_install="rpm -i" package_install="rpm -i"
elif [[ $(command -v pacman) ]]; then elif [[ $(command -v pacman) ]]; then
os="linux" os="linux"
arch=$(uname -m) arch=$(uname -m)
package_suffix=".pkg.tar.zst" package_suffix=".pkg.tar.zst"
package_install="pacman -U --noconfirm" package_install="pacman -U --noconfirm"
elif [[ $(command -v opkg) ]]; then elif [[ $(command -v opkg) ]]; then
os="openwrt" os="openwrt"
source /etc/os-release source /etc/os-release
arch="$OPENWRT_ARCH" arch="$OPENWRT_ARCH"
package_suffix=".ipk" package_suffix=".ipk"
package_install="opkg update && opkg install -y" package_install="opkg update && opkg install -y"
else else
echo "Missing supported package manager." echo "Missing supported package manager."
exit 1 exit 1
fi fi
if [[ -z "$download_version" ]]; then if [[ -z "$download_version" ]]; then
if [[ "$download_beta" != 'true' ]]; then
if [[ -n "$GITHUB_TOKEN" ]]; then header=""
latest_release=$(curl -s --fail-with-body -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/SagerNet/sing-box/releases/latest) if [ -n "$GITHUB_TOKEN" ]; then
else header="-H \"Authorization: token $GITHUB_TOKEN\""
latest_release=$(curl -s --fail-with-body https://api.github.com/repos/SagerNet/sing-box/releases/latest) fi
fi
curl_exit_status=$? if [[ "$download_beta" != 'true' ]]; then
if [[ $curl_exit_status -ne 0 ]]; then download_version=$(curl -s --fail-with-body "$header" https://api.github.com/repos/SagerNet/sing-box/releases/latest |
echo "$latest_release" grep tag_name |
exit $? cut -d ":" -f2 |
fi sed 's/\"//g;s/\,//g;s/\ //g;s/v//')
download_version=$(echo "$latest_release" | grep tag_name | cut -d ":" -f2 | sed 's/\"//g;s/\,//g;s/\ //g;s/v//') else
else download_version=$(curl -s --fail-with-body "$header" https://api.github.com/repos/SagerNet/sing-box/releases |
if [[ -n "$GITHUB_TOKEN" ]]; then grep tag_name |
latest_release=$(curl -s --fail-with-body -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/SagerNet/sing-box/releases) head -n 1 |
else cut -d ":" -f2 |
latest_release=$(curl -s --fail-with-body https://api.github.com/repos/SagerNet/sing-box/releases) sed 's/\"//g;s/\,//g;s/\ //g;s/v//')
fi fi
curl_exit_status=$?
if [[ $? -ne 0 ]]; then
echo "$latest_release"
exit $?
fi
download_version=$(echo "$latest_release" | grep tag_name | head -n 1 | cut -d ":" -f2 | sed 's/\"//g;s/\,//g;s/\ //g;s/v//')
fi
fi fi
package_name="sing-box_${download_version}_${os}_${arch}${package_suffix}" package_name="sing-box_${download_version}_${os}_${arch}${package_suffix}"
package_url="https://github.com/SagerNet/sing-box/releases/download/v${download_version}/${package_name}" package_url="https://github.com/SagerNet/sing-box/releases/download/v${download_version}/${package_name}"
echo "Downloading $package_url" echo "Downloading $package_url"
if [[ -n "$GITHUB_TOKEN" ]]; then curl --fail-with-body -Lo "$package_name" "$package_url"
curl --fail-with-body -Lo "$package_name" -H "Authorization: token ${GITHUB_TOKEN}" "$package_url"
else
curl --fail-with-body -Lo "$package_name" "$package_url"
fi
if [[ $? -ne 0 ]]; then
exit $?
fi
if [[ $(command -v sudo) ]]; then if [[ $(command -v sudo) ]]; then
package_install="sudo $package_install" package_install="sudo $package_install"
fi fi
echo "$package_install $package_name" && $package_install "$package_name" && rm "$package_name" echo "$package_install $package_name"
$package_install "$package_name"
rm "$package_name"