[pacman-dev] [PATCH] checkupdates: Provide --nosync option
Samir Benmendil
me at rmz.io
Mon Jan 11 15:39:12 UTC 2021
Adds an option to not attempt to sync the CHECKUPDATES_DB. This provides
a way to very quickly get a list of outdated packages provided there is
a different mechanism to update CHECKUPDATES_DB already in place such as
a crontab entry or systemd.timer.
Signed-off-by: Samir Benmendil <me at rmz.io>
---
src/checkupdates.sh.in | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/checkupdates.sh.in b/src/checkupdates.sh.in
index 67ff144..027600f 100644
--- a/src/checkupdates.sh.in
+++ b/src/checkupdates.sh.in
@@ -65,8 +65,8 @@ Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary
__EOF__
}
-OPT_SHORT='dh'
-OPT_LONG=('download' 'help' 'nocolor')
+OPT_SHORT='dnh'
+OPT_LONG=('download' 'help' 'nocolor' 'norefresh')
if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
exit 1
@@ -74,10 +74,13 @@ fi
set -- "${OPTRET[@]}"
unset OPT_SHORT OPT_LONG OPTRET
+SYNC=1
while :; do
case $1 in
-d|--download)
DOWNLOAD_CACHE=1 ;;
+ -n|--nosync)
+ SYNC=0 ;;
-h|--help)
usage
exit 0 ;;
@@ -112,10 +115,12 @@ if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then
DBPath="@localstatedir@/lib/pacman/"
fi
-mkdir -p "$CHECKUPDATES_DB"
-ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null
-if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then
- die 'Cannot fetch updates'
+if (( ${SYNC} )); then
+ mkdir -p "$CHECKUPDATES_DB"
+ ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null
+ if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then
+ die 'Cannot fetch updates'
+ fi
fi
mapfile -t updates < <(pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]')
--
2.30.0
More information about the pacman-dev
mailing list