dot_files/updateAll.sh
2025-11-15 02:17:44 +02:00

72 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
set -e
# update APT apps
sudo apt update && sudo apt upgrade -y
# udpate flatpak apps
flatpak update -y
# 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