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