Files
andwati 36f0caa66e Add modular dev environment installer, dotfiles, and desnap script
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.
2026-07-15 17:02:27 +03:00

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"'
}