diff --git a/ss-rust.sh b/ss-rust.sh index fdf44ce..b4f4ea5 100644 --- a/ss-rust.sh +++ b/ss-rust.sh @@ -87,7 +87,7 @@ install_ssrust() { arch_name=$(get_arch) local latest - latest=$(curl -sLm10 https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep tag_name | head -1 | grep -oP 'v[\d.]+') + latest=$(curl -sLm10 https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep tag_name | head -1 | sed 's/.*"v/v/;s/".*//') [[ -z "$latest" ]] && latest="v1.24.0" info "版本: $latest" @@ -95,13 +95,15 @@ install_ssrust() { cd /tmp rm -f ss-rust-dl.tar.xz ssserver sslocal ssurl ssmanager ssservice - curl -sL "$url" -o ss-rust-dl.tar.xz + curl -sLm120 "$url" -o ss-rust-dl.tar.xz local fsize fsize=$(stat -c%s ss-rust-dl.tar.xz 2>/dev/null || stat -f%z ss-rust-dl.tar.xz 2>/dev/null) [[ "$fsize" -lt 100000 ]] && error "下载失败 (${fsize} bytes)" - file ss-rust-dl.tar.xz | grep -q "XZ" || error "下载的文件不是有效的 XZ 压缩包" + if command -v file &>/dev/null; then + file ss-rust-dl.tar.xz | grep -q "XZ" || error "下载的文件不是有效的 XZ 压缩包" + fi tar xf ss-rust-dl.tar.xz || error "解压失败" [[ ! -f ssserver ]] && error "找不到 ssserver"