Skip to content

Instantly share code, notes, and snippets.

@silversquirl
Last active November 18, 2022 14:11
Show Gist options
  • Save silversquirl/b09088a4a787d6a901ec95cb7a0a76c3 to your computer and use it in GitHub Desktop.
Save silversquirl/b09088a4a787d6a901ec95cb7a0a76c3 to your computer and use it in GitHub Desktop.
Simple script to update to latest zig master. Depends on curl, tar, xz and jq
#!/bin/sh -e
case "$(uname -s)" in
Linux) os=linux;;
Darwin) os=macos;;
FreeBSD) os=freebsd;;
*) echo 'Unsupported OS' >&2; exit 1;;
esac
curl -sSL 'https://ziglang.org/download/index.json' |
jq -r ".master| .version, (.\"$(uname -m)-$os\" | .tarball, .shasum)" | {
read -r version
read -r url
read -r shasum
if command -v zig 2>&1 >/dev/null && [ "$version" = "$(zig version)" ]; then
echo "Zig is up to date"
exit 0
fi
tmpdir="$(mktemp -d)"
cd "$tmpdir"
curl -Lo _zig.tar.xz "$url"
echo "$shasum _zig.tar.xz" | sha256sum -c
tar xf _zig.tar.xz
rm -rf "$HOME/.opt/zig"
mkdir -p "$HOME/.opt"
mv zig*/ "$HOME/.opt/zig"
cd
rm -rf "$tmpdir"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment