Simply add the option to pass the --needed flag to pacman when using -i
with makepkg. When using makepkg in scripts, particularly for git
packages with the new version functions and not just a date, this can
save disk io and time instead of reinstalling.

This would mostly be useful with the --noconfirm option.

Signed-off-by: wgiokas <[email protected]>
---
 doc/makepkg.8.txt     | 4 ++++
 scripts/makepkg.sh.in | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 9d19e38..498c79b 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -173,6 +173,10 @@ Options
        (Passed to pacman) Prevent pacman from waiting for user input before
        proceeding with operations.
 
+*\--needed*::
+       (Passed to pacman) Tell pacman not to reinstall a target if it is 
already
+       up to date. (used with -i / --install).
+
 *\--asdeps*::
        (Passed to pacman) Install packages as non-explicitly installed (used
        with -i / --install).
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index e4bf296..a564a2f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2429,6 +2429,7 @@ usage() {
        echo
        printf -- "$(gettext "  --asdeps         Install packages as 
non-explicitly installed")\n"
        printf -- "$(gettext "  --noconfirm      Do not ask for confirmation 
when resolving dependencies")\n"
+       printf -- "$(gettext "  --needed         Do not reinstall the targets 
that are already up to date")\n"
        printf -- "$(gettext "  --noprogressbar  Do not show a progress bar 
when downloading files")\n"
        echo
        printf -- "$(gettext "If %s is not specified, %s will look for 
'%s'")\n" "-p" "makepkg" "$BUILDSCRIPT"
@@ -2464,7 +2465,7 @@ OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 
'force' 'geninteg'
           'source' 'syncdeps' 'version')
 
 # Pacman Options
-OPT_LONG+=('asdeps' 'noconfirm' 'noprogressbar')
+OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar')
 
 if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
        exit 1 # E_INVALID_OPTION;
@@ -2477,6 +2478,7 @@ while true; do
                # Pacman Options
                --asdeps)         ASDEPS=1;;
                --noconfirm)      PACMAN_OPTS+=" --noconfirm" ;;
+               --needed)         PACMAN_OPTS+=" --needed" ;;
                --noprogressbar)  PACMAN_OPTS+=" --noprogressbar" ;;
 
                # Makepkg Options
-- 
1.8.0


Reply via email to