On Mon, Jul 22, 2013 at 09:23:00PM -0400, Jonathan Frazier wrote:
> Signed-off-by: Jonathan Frazier <[email protected]>
> ---
>  contrib/pacdiff.sh.in | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in
> index 6b5edb9..349f6b9 100644
> --- a/contrib/pacdiff.sh.in
> +++ b/contrib/pacdiff.sh.in
> @@ -28,6 +28,7 @@ diffsearchpath=${DIFFSEARCHPATH:-/etc}
>  USE_COLOR='y'
>  declare -a oldsaves
>  declare -i FIND=0 LOCATE=0 PACDB=0 OUTPUTONLY=0
> +declare -i UPDATEDB=0
>  
>  m4_include(../scripts/library/output_format.sh)
>  
> @@ -122,6 +123,20 @@ case $(( FIND+LOCATE+PACDB )) in
>               usage; exit 1;;
>  esac
>  
> +if (( LOCATE )) && (( ! OUTPUTONLY )); then
> +     ask "Run updatedb? [y/n] "
> +     while read c; do
> +             case $c in
> +                     Y|y) UPDATEDB=1; break;; #&& (error "updatedb failed"; 
> exit 1);;

I'm guessing you commented this out and added the "workaround" below
because you didn't understand why the 'exit 1' didn't do anything.
You've created a subshell, so calling exit will just exit from the
subshell. You can use { ... ; } instead which groups commands without
creating a subshell. Better yet, just inline the updatedb call if you
really want to go that route. I don't see why the indirection is
needed/wanted.

> +                     N|n) break;;
> +                     *) ask "Invalid answer. Try again: [y/n] "; continue ;;
> +             esac
> +     done
> +fi
> +if (( UPDATEDB )); then
> +     updatedb || error "updatedb failed"

If you're going to throw an error, you should probably exit. Otherwise,
throw a warning instead and point out that results may not be accurate.

All that said, I don't really care for this feature.

> +fi
> +
>  if (( PACDB )); then
>       if [[ ! -r @sysconfdir@/pacman.conf ]]; then
>               error "unable to read @sysconfdir@/pacman.conf"
> -- 
> 1.8.3.2
> 
> 

Reply via email to