From 889daa82aa4a5423cadbec408927f0a2f6276fdd Mon Sep 17 00:00:00 2001 From: Jeremy McClure Date: Sun, 2 Aug 2026 09:40:35 -0400 Subject: [PATCH] fix: update broken binary download URLs in bootstrap - Fix eza: underscore separator (eza- -> eza_) - Fix bat: resolve version via GitHub API, use --wildcards for extraction - Fix delta: resolve version via GitHub API, use --wildcards for extraction - Fix fastfetch: map x86_64 to amd64, fix tar strip depth - Fix jq: map x86_64 to amd64 - Fix lazygit: resolve version via GitHub API, lowercase linux - Fix lazydocker: resolve version via GitHub API --- bootstrap.sh | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 392b6c0..6ed13f7 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -69,28 +69,40 @@ install_binary() { ;; eza) info "installing eza" - local url="https://github.com/eza-community/eza/releases/latest/download/eza-${arch}-unknown-linux-musl.tar.gz" + local url="https://github.com/eza-community/eza/releases/latest/download/eza_${arch}-unknown-linux-musl.tar.gz" curl -sSfL "$url" | sudo tar xz -C /usr/local/bin ;; bat) info "installing bat" - local url="https://github.com/sharkdp/bat/releases/latest/download/bat-${arch}-unknown-linux-musl.tar.gz" - curl -sSfL "$url" | sudo tar xz --strip-components=1 -C /usr/local/bin "bat-${arch}-unknown-linux-musl/bat" + local bat_version + bat_version=$(curl -sSfL "https://api.github.com/repos/sharkdp/bat/releases/latest" | jq -r '.tag_name') + curl -sSfL "https://github.com/sharkdp/bat/releases/download/${bat_version}/bat-${bat_version}-${arch}-unknown-linux-musl.tar.gz" | sudo tar xz --strip-components=1 -C /usr/local/bin --wildcards '*/bat' ;; delta) info "installing delta" - local url="https://github.com/dandavison/delta/releases/latest/download/delta-${arch}-unknown-linux-musl.tar.gz" - curl -sSfL "$url" | sudo tar xz --strip-components=1 -C /usr/local/bin "delta-${arch}-unknown-linux-musl/delta" + local delta_version + delta_version=$(curl -sSfL "https://api.github.com/repos/dandavison/delta/releases/latest" | jq -r '.tag_name') + curl -sSfL "https://github.com/dandavison/delta/releases/download/${delta_version}/delta-${delta_version}-${arch}-unknown-linux-musl.tar.gz" | sudo tar xz --strip-components=1 -C /usr/local/bin --wildcards '*/delta' ;; fastfetch) info "installing fastfetch" - local url="https://github.com/fastfetch-cli/fastfetch/releases/latest/download/fastfetch-linux-${arch}.tar.gz" - curl -sSfL "$url" | sudo tar xz --strip-components=2 -C /usr/local/bin + local ff_arch + case "$arch" in + x86_64) ff_arch="amd64" ;; + aarch64) ff_arch="aarch64" ;; + armhf) ff_arch="armv6l" ;; + esac + curl -sSfL "https://github.com/fastfetch-cli/fastfetch/releases/latest/download/fastfetch-linux-${ff_arch}.tar.gz" | sudo tar xz --strip-components=3 -C /usr/local/bin --wildcards '*/bin/fastfetch' ;; jq) info "installing jq" - local url="https://github.com/jqlang/jq/releases/latest/download/jq-linux-${arch}" - curl -sSfL "$url" -o /usr/local/bin/jq + local jq_arch + case "$arch" in + x86_64) jq_arch="amd64" ;; + aarch64) jq_arch="arm64" ;; + armhf) jq_arch="armhf" ;; + esac + curl -sSfL "https://github.com/jqlang/jq/releases/latest/download/jq-linux-${jq_arch}" -o /usr/local/bin/jq sudo chmod +x /usr/local/bin/jq ;; lazygit) @@ -101,7 +113,9 @@ install_binary() { aarch64) lazygit_arch="arm64" ;; armhf) lazygit_arch="armv6" ;; esac - curl -sSfL "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_Linux_${lazygit_arch}.tar.gz" | sudo tar xz -C /usr/local/bin + local lazygit_version + lazygit_version=$(curl -sSfL "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | jq -r '.tag_name') + curl -sSfL "https://github.com/jesseduffield/lazygit/releases/download/${lazygit_version}/lazygit_${lazygit_version#v}_linux_${lazygit_arch}.tar.gz" | sudo tar xz -C /usr/local/bin ;; lazydocker) info "installing lazydocker" @@ -111,7 +125,9 @@ install_binary() { aarch64) lazydocker_arch="arm64" ;; armhf) lazydocker_arch="armv6" ;; esac - curl -sSfL "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_Linux_${lazydocker_arch}.tar.gz" | sudo tar xz -C /usr/local/bin + local lazydocker_version + lazydocker_version=$(curl -sSfL "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | jq -r '.tag_name') + curl -sSfL "https://github.com/jesseduffield/lazydocker/releases/download/${lazydocker_version}/lazydocker_${lazydocker_version#v}_Linux_${lazydocker_arch}.tar.gz" | sudo tar xz -C /usr/local/bin ;; dotstate) info "installing dotstate"