#!/bin/bash set -e # update APT apps sudo apt update && sudo apt upgrade -y # udpate flatpak apps flatpak update -y #!/bin/bash set -e # Update Neovim echo "Updating Neovim..." cd /tmp curl -sLO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz sudo rm -rf /opt/nvim-linux-x86_64 sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz # Update fzf echo "Updating fzf..." if [ -d "$HOME/.fzf" ]; then cd ~/.fzf git pull --quiet ./install --bin --no-update-rc else git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install --bin --no-update-rc fi # Update Rust via rustup if command -v rustup >/dev/null 2>&1; then echo "Updating Rust (rustup)..." rustup self update rustup update else echo "Rustup not found, skipping Rust update." fi # Update Go if command -v go >/dev/null 2>&1 && [ -d "/usr/local/go" ]; then echo "Updating Go..." GO_OS=linux GO_ARCH=amd64 # Fetch latest version LATEST=$(curl -fsS https://go.dev/VERSION?m=text | head -n1 || true) if [[ "$LATEST" =~ ^go[0-9] ]]; then TMP_TAR=/tmp/go.tar.gz if curl -fsSL "https://go.dev/dl/${LATEST}.${GO_OS}-${GO_ARCH}.tar.gz" -o "$TMP_TAR"; then sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf "$TMP_TAR" echo "Go updated to: $(/usr/local/go/bin/go version)" else echo " Failed to download ${LATEST}, skipping." fi else echo "Could not determine latest Go version, skipping." fi else echo "Go not managed via /usr/local/go, skipping Go update." fi # Display versions echo echo "All updates complete!" echo -n "Neovim: "; nvim --version | head -1 echo -n "fzf: "; fzf --version echo -n "rust: "; rustc --version || true echo -n "golang: "; go version || true