@@ -79,7 +79,17 @@ cleanup_snapd() {
7979 return
8080 fi
8181
82- rm -rf /var/lib/snapd/cache/*
82+ # Robustly clean Snap cache if the directory exists and is not empty
83+ SNAP_CACHE_DIR=" /var/lib/snapd/cache"
84+ if [ -d " ${SNAP_CACHE_DIR} " ]; then
85+ if rm -rf " ${SNAP_CACHE_DIR:? } /" * ; then
86+ println " Snap cache cleaned from ${SNAP_CACHE_DIR} "
87+ else
88+ print_err " Error: Failed to clean Snap cache at ${SNAP_CACHE_DIR} "
89+ fi
90+ else
91+ println " Snap cache directory ${SNAP_CACHE_DIR} does not exist."
92+ fi
8393
8494 # List all snaps and filter for disabled ones
8595 snap list --all | awk ' /disabled/{print $1, $3}' | while read -r snap_name revision; do
@@ -142,60 +152,57 @@ update_snapd() {
142152update_os_pkg () {
143153 case " ${ADJUSTED_ID} " in
144154 debian)
145- if [ " $( find /var/lib/apt/lists/* -maxdepth 1 -type f 2> /dev/null | wc -l) " -eq 0 ]; then
146- println " Updating ${PKG_MGR_CMD} based packages..."
147- if ! (" ${PKG_MGR_CMD} " update -y &&
148- " ${PKG_MGR_CMD} " upgrade -y &&
149- " ${PKG_MGR_CMD} " dist-upgrade -y &&
150- " ${PKG_MGR_CMD} " autoremove -y &&
151- " ${PKG_MGR_CMD} " autoclean -y); then
152- print_err " Error: Update failed."
153- fi
155+ println " Updating ${PKG_MGR_CMD} based packages..."
156+ if ! (" ${PKG_MGR_CMD} " update -y &&
157+ " ${PKG_MGR_CMD} " upgrade -y &&
158+ " ${PKG_MGR_CMD} " dist-upgrade -y &&
159+ " ${PKG_MGR_CMD} " autoremove -y &&
160+ " ${PKG_MGR_CMD} " autoclean -y); then
161+ print_err " Error: Update failed."
154162 fi
155163
156164 update_snapd
157165 ;;
158166 rhel)
167+ println " Updating ${PKG_MGR_CMD} based packages..."
159168 if [ " ${PKG_MGR_CMD} " = " microdnf" ]; then
160- if [ " $( find /var/cache/yum/* -mindepth 1 -maxdepth 1 -print -quit 2> /dev/null | wc -l) " -eq 0 ]; then
161- println " Running ${PKG_MGR_CMD} makecache..."
162- " ${PKG_MGR_CMD} " makecache
169+ if ! (" ${PKG_MGR_CMD} " makecache); then
170+ print_err " Error: Failed to update package cache."
163171 fi
164172 else
165- if [ " $( find " /var/cache/${PKG_MGR_CMD} " /* -mindepth 1 -maxdepth 1 -print -quit 2> /dev/null | wc -l) " -eq 0 ]; then
166- println " Running ${PKG_MGR_CMD} check-update..."
167- set +e
168- " ${PKG_MGR_CMD} " check-update
169- rc=$?
170- if [ $rc -ne 0 ] && [ $rc -ne 100 ]; then
171- exit 1
172- fi
173- set -e
173+ " ${PKG_MGR_CMD} " check-update
174+ rc=$?
175+ if [ " ${rc} " -ne 0 ] && [ " ${rc} " -ne 100 ]; then
176+ print_err " Error: Update failed."
174177 fi
175178 fi
176179
177- println " Updating ${PKG_MGR_CMD} based packages..."
178180 if ! (" ${PKG_MGR_CMD} " update -y &&
179181 " ${PKG_MGR_CMD} " upgrade -y &&
180182 " ${PKG_MGR_CMD} " autoremove -y); then
181183 print_err " Error: Update failed."
182184 fi
183185 ;;
184186 alpine)
185- if [ " $( find /var/cache/apk/* 2> /dev/null | wc -l) " -eq 0 ]; then
186- println " Updating ${PKG_MGR_CMD} based packages..."
187- if ! (" ${PKG_MGR_CMD} " update && " ${PKG_MGR_CMD} " upgrade); then
188- print_err " Error: Update failed."
189- fi
187+ println " Updating ${PKG_MGR_CMD} based packages..."
188+ if ! (" ${PKG_MGR_CMD} " update && " ${PKG_MGR_CMD} " upgrade); then
189+ print_err " Error: Update failed."
190190 fi
191191 ;;
192192 arch)
193- if [ " $( find /var/cache/pacman/pkg/* 2> /dev/null | wc -l) " -eq 0 ]; then
194- println " Updating ${PKG_MGR_CMD} based packages..."
195- if ! (" ${PKG_MGR_CMD} " -Syu --noconfirm &&
196- " ${PKG_MGR_CMD} " -Rns " $( " ${PKG_MGR_CMD} " -Qdtq) " ); then
197- print_err " Error: Update failed."
193+ println " Updating ${PKG_MGR_CMD} based packages..."
194+ if ! (" ${PKG_MGR_CMD} " -Syu --noconfirm); then
195+ print_err " Error: Update failed."
196+ fi
197+ # Remove orphaned packages if any exist
198+ ORPHANS=$( " ${PKG_MGR_CMD} " -Qdtq)
199+ rc=$?
200+ if [ " ${rc} " -eq 0 ] && [ -n " ${ORPHANS} " ]; then
201+ if ! (" ${PKG_MGR_CMD} " -Rns " ${ORPHANS} " ); then
202+ print_err " Error: Failed to remove orphaned packages."
198203 fi
204+ elif [ " ${rc} " -ne 1 ]; then
205+ print_err " Error: Failed to detect orphaned packages (exit code ${rc} )."
199206 fi
200207 ;;
201208 * )
0 commit comments