Files
v2ray/src/download.sh
2024-06-10 16:11:33 +08:00

83 lines
2.5 KiB
Bash

get_latest_version() {
case $1 in
core)
name=$is_core_name
url="https://api.github.com/repos/${is_core_repo}/releases/latest?v=$RANDOM"
;;
sh)
name="$is_core_name 脚本"
url="https://api.github.com/repos/$is_sh_repo/releases/latest?v=$RANDOM"
;;
caddy)
name="Caddy"
url="https://api.github.com/repos/$is_caddy_repo/releases/latest?v=$RANDOM"
;;
esac
latest_ver=$(_wget -qO- $url | grep tag_name | egrep -o 'v([0-9.]+)')
[[ ! $latest_ver ]] && {
err "获取 ${name} 最新版本失败."
}
unset name url
}
download() {
latest_ver=$2
[[ ! $latest_ver && $1 != 'dat' ]] && get_latest_version $1
# tmp dir
tmpdir=$(mktemp -u)
[[ ! $tmpdir ]] && {
tmpdir=/tmp/tmp-$RANDOM
}
mkdir -p $tmpdir
case $1 in
core)
name=$is_core_name
tmpfile=$tmpdir/$is_core.zip
link="https://github.com/${is_core_repo}/releases/download/${latest_ver}/${is_core}-linux-${is_core_arch}.zip"
download_file
unzip -qo $tmpfile -d $is_core_dir/bin
chmod +x $is_core_bin
;;
sh)
name="$is_core_name 脚本"
tmpfile=$tmpdir/sh.zip
link="https://github.com/${is_sh_repo}/releases/download/${latest_ver}/code.zip"
download_file
unzip -qo $tmpfile -d $is_sh_dir
chmod +x $is_sh_bin
;;
dat)
name="geoip.dat"
tmpfile=$tmpdir/geoip.dat
link="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat"
download_file
name="geosite.dat"
tmpfile=$tmpdir/geosite.dat
link="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat"
download_file
cp -f $tmpdir/*.dat $is_core_dir/bin/
;;
caddy)
name="Caddy"
tmpfile=$tmpdir/caddy.tar.gz
# https://github.com/caddyserver/caddy/releases/download/v2.6.4/caddy_2.6.4_linux_amd64.tar.gz
link="https://github.com/${is_caddy_repo}/releases/download/${latest_ver}/caddy_${latest_ver:1}_linux_${caddy_arch}.tar.gz"
download_file
[[ ! $(type -P tar) ]] && {
rm -rf $tmpdir
err "请安装 tar"
}
tar zxf $tmpfile -C $tmpdir
cp -f $tmpdir/caddy $is_caddy_bin
chmod +x $is_caddy_bin
;;
esac
rm -rf $tmpdir
unset latest_ver
}
download_file() {
if ! _wget -t 5 -c $link -O $tmpfile; then
rm -rf $tmpdir
err "\n下载 ${name} 失败.\n"
fi
}