On 22/11/11 15:02, Dave Reisner wrote:
Whereas comm will check inputs to see if they're sorted (and warn when
they aren't), grep doesn't even care about ordering. In this particular
instance -- neither do we. We're only interested that the two lists are
equivalent.

Fixes FS#26580.

Signed-off-by: Dave Reisner<[email protected]>
---

I had not seen this when I sent my patch. Would comm not be more efficient than grep for doing this?


  scripts/makepkg.sh.in |   16 +++++++++-------
  1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 26a2789..0fa05dc 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -506,15 +506,17 @@ remove_deps() {

        # check for packages removed during dependency install (e.g. due to 
conflicts)
        # removing all installed packages is risky in this case
-       if [[ -n  $(comm -23<(printf "%s\n" "${original_pkglist[@]}") \
-                       <(printf "%s\n" "${current_pkglist[@]}")) ]]; then
-         warning "$(gettext "Failed to remove installed dependencies.")"
-         return 0
+       if [[ -n $(grep -xvFf<(printf '%s\n' "${current_packagelist[@]}") \
+                       <(printf '%s\n' "${original_packagelist[@]}") ) ]]; then
+               warning "$(gettext "Failed to remove installed dependencies.")"
+               return 0
        fi

-       local deplist=($(comm -13<(printf "%s\n" "${original_pkglist[@]}") \
-                       <(printf "%s\n" "${current_pkglist[@]}")))
-       (( ${#deplist[@]} == 0 ))&&  return
+       local deplist
+       if ! deplist=($(grep -xvFf<(printf "%s\n" "${original_pkglist[@]}") \
+                       <(printf "%s\n" "${current_pkglist[@]}"))); then
+               return
+       fi

        msg "Removing installed dependencies..."
        # exit cleanly on failure to remove deps as package has been built 
successfully


Reply via email to