mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-06-13 21:54:13 +08:00
Compare commits
73 Commits
baab618a07
...
50384bd0b0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
50384bd0b0 | ||
![]() |
741befc297 | ||
![]() |
d3233a3267 | ||
![]() |
470f1cf419 | ||
![]() |
7a72ee051f | ||
![]() |
3ff130a437 | ||
![]() |
9e5e0a4482 | ||
![]() |
6d5d86bbcb | ||
![]() |
13eedc2926 | ||
![]() |
1dae8e64df | ||
![]() |
fede7ed3c7 | ||
![]() |
90fe2ea861 | ||
![]() |
512d516da0 | ||
![]() |
bad31b5eeb | ||
![]() |
df01484ff7 | ||
![]() |
d0b743378f | ||
![]() |
7f4c37a3bb | ||
![]() |
1fae8e681b | ||
![]() |
82a08d1d33 | ||
![]() |
efffd70a00 | ||
![]() |
d514873b08 | ||
![]() |
945106f7f0 | ||
![]() |
a669b30683 | ||
![]() |
5f3a9ace86 | ||
![]() |
91572dbca1 | ||
![]() |
f0b2a8d6e3 | ||
![]() |
37e3641693 | ||
![]() |
258a3a5347 | ||
![]() |
a0cd0f86b0 | ||
![]() |
fe7657c72b | ||
![]() |
4e7934e37d | ||
![]() |
b4e6a76ba8 | ||
![]() |
362b423594 | ||
![]() |
85b2e5f19b | ||
![]() |
68f0d36b73 | ||
![]() |
70587ea391 | ||
![]() |
ed0177812e | ||
![]() |
0fdcfcbc1a | ||
![]() |
bcd581ac2f | ||
![]() |
3609613eb8 | ||
![]() |
1e45d84e6b | ||
![]() |
033a9c005c | ||
![]() |
8cd809851f | ||
![]() |
389d58d0f5 | ||
![]() |
b1993f9795 | ||
![]() |
962ecdc9af | ||
![]() |
64b7997953 | ||
![]() |
b549b09d5d | ||
![]() |
d7c69ace25 | ||
![]() |
4c6108ad02 | ||
![]() |
6cd6a37692 | ||
![]() |
3af95a1450 | ||
![]() |
d62388e0ae | ||
![]() |
70cdda33ff | ||
![]() |
bc8f8df4ca | ||
![]() |
7eb1e36fd2 | ||
![]() |
0ec336f57c | ||
![]() |
b6b3159c5f | ||
![]() |
d947db6a47 | ||
![]() |
d003b43d8b | ||
![]() |
6ae57918a1 | ||
![]() |
403969288a | ||
![]() |
eed125f882 | ||
![]() |
7683a96e99 | ||
![]() |
488f873f51 | ||
![]() |
1639cc11c9 | ||
![]() |
80eba20f97 | ||
![]() |
0b92750dd8 | ||
![]() |
22bf2ed303 | ||
![]() |
eaad23b256 | ||
![]() |
a17e8cb670 | ||
![]() |
02f88db709 | ||
![]() |
d6f9414c2d |
@ -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"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user