On 23/01/12 12:13, Dave Reisner wrote: > On Mon, Jan 23, 2012 at 12:08:14PM +1000, Allan McRae wrote: >> On 20/01/12 23:59, Dave Reisner wrote: >>> On Fri, Jan 20, 2012 at 11:24:23PM +1000, Allan McRae wrote: >>>> The grep statement used to check for a difference between the >>>> installed package list before and after resolving dependencies >>>> returns 1 if there is no difference. This sets of the error >>>> trap when "-r" is used "unnecessarily". >>>> >>>> Signed-off-by: Allan McRae <[email protected]> >>>> --- >>>> ... >>>> >>>> local deplist >>>> - if ! deplist=($(grep -xvFf <(printf "%s\n" "${original_pkglist[@]}") \ >>>> - <(printf "%s\n" "${current_pkglist[@]}"))); then >>>> + deplist=($(grep -xvFf <(printf "%s\n" "${original_pkglist[@]}") \ >>>> + <(printf "%s\n" "${current_pkglist[@]}") || true)) >>>> + if [[ -n deplist ]]; then >>> >>> My brain tells me there's a way to avoid this, but I'm not sure I trust >>> it right now. >>> >> >> I have not thought of one... let me know if your brain is working >> better now and has come up with the answer! >> >> > > What about something like... > > local dep deplist > while read -r dep; do > deplist+=("$dep") > done < <(grep -xvFf <(printf "%s\n" "${original_pkglist[@]}") \ > <(printf "%s\n" "${current_pkglist[@]}")) > > if (( ${#deplist[*]} )); then > return > fi
I'm not sure the whole "while read" construct is worth it to get rid of the || true. I'll just leave my patch as it is for now unless you really feel strongly that I should not do it that way... Allan
