@@ -13,6 +13,67 @@ handle_error() {
13
13
14
14
echo "Starting package updates..."
15
15
16
+ # System Package Managers (requiring sudo)
17
+ if which apt >/dev/null 2>&1; then
18
+ echo "Updating APT packages..."
19
+ if ! { busybox su -c "apt update && apt upgrade -y && apt autoremove -y"; }; then
20
+ handle_error "APT" "update failed"
21
+ fi
22
+ elif which dpkg >/dev/null 2>&1; then
23
+ echo "Updating DPKG packages..."
24
+ if ! busybox su -c "dpkg --configure -a"; then
25
+ handle_error "DPKG" "configuration failed"
26
+ fi
27
+ elif which dnf >/dev/null 2>&1; then
28
+ echo "Updating DNF packages..."
29
+ if ! busybox su -c "dnf upgrade --refresh -y"; then
30
+ handle_error "DNF" "update failed"
31
+ fi
32
+ elif which yum >/dev/null 2>&1; then
33
+ echo "Updating YUM packages..."
34
+ if ! busybox su -c "yum update -y"; then
35
+ handle_error "YUM" "update failed"
36
+ fi
37
+ elif which pacman >/dev/null 2>&1; then
38
+ echo "Updating Pacman packages..."
39
+ if ! busybox su -c "pacman -Syu --noconfirm"; then
40
+ handle_error "Pacman" "update failed"
41
+ fi
42
+ elif which zypper >/dev/null 2>&1; then
43
+ echo "Updating Zypper packages..."
44
+ if ! busybox su -c "zypper refresh && zypper update -y"; then
45
+ handle_error "Zypper" "update failed"
46
+ fi
47
+ elif which emerge >/dev/null 2>&1; then
48
+ echo "Updating Portage packages..."
49
+ if ! busybox su -c "emerge --sync && emerge -uDN @world"; then
50
+ handle_error "Portage" "update failed"
51
+ fi
52
+ elif which xbps-install >/dev/null 2>&1; then
53
+ echo "Updating XBPS packages..."
54
+ if ! busybox su -c "xbps-install -Su"; then
55
+ handle_error "XBPS" "update failed"
56
+ fi
57
+ elif which apk >/dev/null 2>&1; then
58
+ echo "Updating APK packages..."
59
+ if ! busybox su -c "apk update && apk upgrade"; then
60
+ handle_error "APK" "update failed"
61
+ fi
62
+ elif which pkgtool >/dev/null 2>&1; then
63
+ echo "Updating Slackware packages..."
64
+ if ! busybox su -c "slackpkg update && slackpkg upgrade-all"; then
65
+ handle_error "Slackware" "update failed"
66
+ fi
67
+ fi
68
+
69
+ # Update Snap packages (requires sudo)
70
+ if which snap >/dev/null 2>&1; then
71
+ echo "Updating Snap packages..."
72
+ if ! busybox su -c "snap refresh"; then
73
+ handle_error "Snap" "update failed"
74
+ fi
75
+ fi
76
+
16
77
# Update and upgrade Homebrew
17
78
if which brew >/dev/null 2>&1; then
18
79
echo "Updating Homebrew..."
@@ -29,33 +90,22 @@ if which flatpak >/dev/null 2>&1; then
29
90
fi
30
91
fi
31
92
32
- # Update Snap packages
33
- if which snap >/dev/null 2>&1; then
34
- echo "Updating Snap packages ..."
35
- if ! busybox su -c "snap refresh" ; then
36
- handle_error "Snap " "update failed"
93
+ # Update Nix packages
94
+ if which nix-env >/dev/null 2>&1; then
95
+ echo "Updating Nix ..."
96
+ if ! { nix-channel --update && nix-env -u && nix-collect-garbage -d; } ; then
97
+ handle_error "Nix " "update failed"
37
98
fi
38
99
fi
39
100
40
- # System Package Managers
41
- if which apt >/dev/null 2>&1; then
42
- echo "Updating APT packages..."
43
- if ! { busybox su -c "apt update && apt upgrade -y && apt autoremove -y"; }; then
44
- handle_error "APT" "update failed"
45
- fi
46
- elif which dpkg >/dev/null 2>&1; then
47
- echo "Updating DPKG packages..."
48
- if ! busybox su -c "dpkg --configure -a"; then
49
- handle_error "DPKG" "configuration failed"
50
- fi
51
- elif which dnf >/dev/null 2>&1; then
52
- echo "Updating DNF packages..."
53
- if ! busybox su -c "dnf upgrade --refresh -y"; then
54
- handle_error "DNF" "update failed"
101
+ # Programming Language Package Managers
102
+ if which npm >/dev/null 2>&1; then
103
+ echo "Updating NPM packages..."
104
+ if ! npm update -g; then
105
+ handle_error "NPM" "update failed"
55
106
fi
56
107
fi
57
108
58
- # Programming Language Package Managers
59
109
if which pip >/dev/null 2>&1; then
60
110
echo "Updating PIP packages..."
61
111
if ! pip list --outdated --format=freeze | busybox grep -v '^\-e' | busybox cut -d = -f 1 | while read pkg; do
@@ -65,6 +115,20 @@ if which pip >/dev/null 2>&1; then
65
115
fi
66
116
fi
67
117
118
+ if which gem >/dev/null 2>&1; then
119
+ echo "Updating Ruby gems..."
120
+ if ! gem update; then
121
+ handle_error "Ruby Gems" "update failed"
122
+ fi
123
+ fi
124
+
125
+ if which cargo >/dev/null 2>&1; then
126
+ echo "Updating Cargo packages..."
127
+ if ! cargo install-update -a; then
128
+ handle_error "Cargo" "update failed"
129
+ fi
130
+ fi
131
+
68
132
# Container and Virtualization
69
133
if which docker >/dev/null 2>&1; then
70
134
echo "Updating Docker images..."
@@ -76,4 +140,14 @@ if which docker >/dev/null 2>&1; then
76
140
done
77
141
fi
78
142
143
+ if which podman >/dev/null 2>&1; then
144
+ echo "Updating Podman images..."
145
+ podman images | busybox grep -v REPOSITORY | while read line; do
146
+ image=$(echo "$line" | busybox awk '{print $1}')
147
+ if ! podman pull "$image"; then
148
+ handle_error "Podman" "failed to update $image"
149
+ fi
150
+ done
151
+ fi
152
+
79
153
echo "All package updates completed!"
0 commit comments