mirror of
https://github.com/andwati/dotfiles.git
synced 2026-10-18 11:02:53 +00:00
Adds a TUI-driven, rollback-capable installer (install/install.sh + install/modules/*.sh) covering JS/Python/systems toolchains, dev tooling, browsers, chat apps, GNOME extras, and misc setup (wakatime key, ssh/gpg perms, apt mirror benchmarking), all sourced from each vendor's official install method. bootstrap.sh stows the zsh/git/tmux/vscode dotfiles and runs the installer; desnap.sh purges snapd and replaces default snaps with apt/Flatpak equivalents.
35 lines
933 B
Bash
35 lines
933 B
Bash
install_go() {
|
|
local latest
|
|
latest=$(curl -fsSL 'https://go.dev/VERSION?m=text' | head -n1)
|
|
|
|
if has_cmd go && go version | grep -q "$latest"; then
|
|
ok "go already at $latest"
|
|
return
|
|
fi
|
|
|
|
local arch
|
|
case "$(uname -m)" in
|
|
x86_64) arch=amd64 ;;
|
|
aarch64) arch=arm64 ;;
|
|
*) err "unsupported arch $(uname -m)"; return 1 ;;
|
|
esac
|
|
|
|
local tarball="/tmp/${latest}.linux-${arch}.tar.gz"
|
|
curl -fsSL "https://go.dev/dl/${latest}.linux-${arch}.tar.gz" -o "$tarball"
|
|
|
|
local backup=""
|
|
if [[ -d /usr/local/go ]]; then
|
|
backup="/usr/local/go.bak.$$"
|
|
sudo mv /usr/local/go "$backup"
|
|
rollback_push "sudo rm -rf /usr/local/go; sudo mv '$backup' /usr/local/go"
|
|
else
|
|
rollback_push "sudo rm -rf /usr/local/go"
|
|
fi
|
|
|
|
sudo tar -C /usr/local -xzf "$tarball"
|
|
rm -f "$tarball"
|
|
if [[ -n "$backup" ]]; then sudo rm -rf "$backup"; fi
|
|
|
|
profile_add 'export PATH="/usr/local/go/bin:$HOME/go/bin:$PATH"'
|
|
}
|