From b6e105d6d68fdac4c434b6f0c43a1412358065e4 Mon Sep 17 00:00:00 2001 From: jiacai2050 Date: Thu, 4 Apr 2024 22:53:56 +0800 Subject: [PATCH] add check sum check --- bin/install | 21 ++++++++++++++++++--- bin/list-all | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/bin/install b/bin/install index c8e9867..c7b53d8 100755 --- a/bin/install +++ b/bin/install @@ -51,7 +51,7 @@ install_zig() { esac local json - json=$(curl --fail --silent --location https://ziglang.org/download/index.json) + json=$(curl --fail --progress-bar --location https://ziglang.org/download/index.json) local download_url download_url=$( @@ -60,15 +60,30 @@ install_zig() { awk 'NR==1 { print $2 }' | tr -d '"' ) + local expected_shasum + expected_shasum=$( + json_parse "$json" | + grep "\[\"$version\",\"${architecture}-${platform}\",\"shasum\"\]" | + awk '{print $2}' | + tr -d '"' + ) local source_path="${install_path}/zig-${platform}-${architecture}-${version}.tar.xz" echo "∗ Downloading and installing Zig..." - curl --fail --silent --location --create-dirs --output "$source_path" "$download_url" + curl --fail --progress-bar --location --create-dirs --output "$source_path" "$download_url" + + local actual_shasum + actual_shasum="$(shasum -a 256 "$source_path" | awk '{print $1}')" + + if [[ "${expected_shasum}" != "${actual_shasum}" ]];then + fail "Checksum not same, expected: ${expected_shasum}, actual: ${actual_shasum}, file: ${source_path}" + fi + tar -xf "$source_path" -C "$install_path" --strip-components=1 mkdir -p "${install_path}/bin" ln -s "${install_path}/zig" "${install_path}/bin/zig" - echo "The installation was successful!" + echo "${version} was installed successful!" } install_zig "$ASDF_INSTALL_TYPE" "$ASDF_INSTALL_VERSION" "$ASDF_INSTALL_PATH" diff --git a/bin/list-all b/bin/list-all index b5e4b39..922e509 100755 --- a/bin/list-all +++ b/bin/list-all @@ -5,7 +5,7 @@ set -Eo pipefail # shellcheck disable=SC1091 source "$(dirname "$0")/../lib/json.bash" -json=$(curl --fail --silent --location https://ziglang.org/download/index.json) +json=$(curl --fail --progress-bar --location https://ziglang.org/download/index.json) sort_versions() { sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z\1/; s/$/.z/; G; s/\n/ /' |