summaryrefslogtreecommitdiff
path: root/scripts/cleanup-update.sh
blob: 519668f1b63244d170c0c3248ec0a51ff3ccd2d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
# Arch Linux Update + Cleanup Script
# Author: ChatGPT
# Usage: ./arch-update-cleanup.sh

set -euo pipefail

# --- Colors for nice output ---
GREEN="\e[32m"
YELLOW="\e[33m"
RED="\e[31m"
RESET="\e[0m"

echo -e "${GREEN}Starting Arch Linux update & cleanup...${RESET}"
echo

# --- Step 1: Update pacman database and system ---
echo -e "${YELLOW}Updating system packages...${RESET}"
sudo pacman -Syu --noconfirm

# --- Step 2: Remove unused dependencies ---
echo -e "${YELLOW}Removing unused dependencies...${RESET}"
sudo pacman -Rns $(pacman -Qtdq 2>/dev/null || echo "") || true

# --- Step 3: Clean pacman cache (keep 3 latest versions) ---
echo -e "${YELLOW}Cleaning package cache...${RESET}"
sudo paccache -r -k3

# --- Step 4: Update AUR packages (if yay installed) ---
if command -v yay >/dev/null 2>&1; then
    echo -e "${YELLOW}Updating AUR packages...${RESET}"
    yay -Syu --noconfirm
fi

# --- Step 5: Update Flatpak packages (if installed) ---
if command -v flatpak >/dev/null 2>&1; then
    echo -e "${YELLOW}Updating Flatpak packages...${RESET}"
    flatpak update -y
fi

# --- Step 6: Update Snap packages (if installed) ---
if command -v snap >/dev/null 2>&1; then
    echo -e "${YELLOW}Updating Snap packages...${RESET}"
    sudo snap refresh
fi

# --- Step 7: Optional cleanup: orphaned Flatpak runtimes ---
if command -v flatpak >/dev/null 2>&1; then
    echo -e "${YELLOW}Removing unused Flatpak runtimes...${RESET}"
    flatpak uninstall --unused -y
fi

echo
echo -e "${GREEN}System update & cleanup complete!${RESET}"