[pacman-dev] [PATCH 4/5] pacdiff: rework search type handling, add --find option

Jonathan Frazier eyeswide at gmail.com
Tue Jul 16 14:00:20 EDT 2013


change cmd tests to if (( $find ))... as it is cleaner.  All search cmds
have an option and a variable initialized to zero. the active option
should be set to 1.  Add a switch to exclude multiple search options.
set the default when all are equal to zero.

Signed-off-by: Jonathan Frazier <eyeswide at gmail.com>
---
 contrib/pacdiff.sh.in | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in
index a39a02a..c12e9d5 100644
--- a/contrib/pacdiff.sh.in
+++ b/contrib/pacdiff.sh.in
@@ -23,19 +23,23 @@ declare -r myver='@PACKAGE_VERSION@'
 
 diffprog=${DIFFPROG:-vimdiff}
 diffsearchpath=${DIFFSEARCHPATH:-/etc}
-locate=0
 USE_COLOR='y'
 
+declare -i findActive=0 locateActive=0
+
 m4_include(../scripts/library/output_format.sh)
 
 usage() {
 	cat <<EOF
 $myname is a simple pacnew/pacorig/pacsave updater.
 
-Usage: $myname [-l]
+Usage: $myname [-l | -f] [--nocolor]
+
+Search Options:     select one, default: find
+  -l/--locate       scan using locate
+  -f/--find         scan using find
 
-Options:
-  -l/--locate       scan using locate (default: find)
+General Options:
   --nocolor         remove colors from output
 
 Enviroment Variables:
@@ -55,9 +59,9 @@ version() {
 }
 
 cmd() {
-	if [ $locate -eq 1 ]; then
+	if (( $locateActive )); then
 		locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave '*.pacsave.[0-9]'
-	else
+	elif (( $findActive )); then
 		find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave -o -name '*.pacsave.[0-9]' \) -print0
 	fi
 }
@@ -65,7 +69,9 @@ cmd() {
 while [[ -n "$1" ]]; do	
 	case "$1" in
 		-l|--locate)
-		locate=1;;
+		locateActive=1;;
+		-f|--find)
+		findActive=1;;
 		--nocolor)
 		USE_COLOR='n' ;;
 		-V|--version)
@@ -80,6 +86,12 @@ done
 
 m4_include(../scripts/library/term_colors.sh)
 
+case $(( findActive+locateActive )) in
+	0) findActive=1;; # set the default search option
+	[^1]) error "Only one search option may be used at a time"
+	 	usage; exit 1;;
+esac
+
 # see http://mywiki.wooledge.org/BashFAQ/020
 while IFS= read -u 3 -r -d '' pacfile; do
 	file="${pacfile%.pac*}"
-- 
1.8.3.2



More information about the pacman-dev mailing list