On Mon, Jul 22, 2013 at 09:23:00PM -0400, Jonathan Frazier wrote:
Signed-off-by: Jonathan Frazier <eyeswide@gmail.com> --- 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