summaryrefslogtreecommitdiffstats
path: root/contrib/pacdiff.sh.in
diff options
context:
space:
mode:
authorJonathan Frazier <eyeswide@gmail.com>2013-07-16 18:38:15 +0200
committerAllan McRae <allan@archlinux.org>2013-07-30 05:00:10 +0200
commit15eea825e65e4ed1e7e186cb1f3535ed04b71373 (patch)
tree936aa07d33606f02fcf86fda0d27709792bee3ed /contrib/pacdiff.sh.in
parentb1b9ca01f06b74924945ea1ac75d36d1ea89c423 (diff)
downloadpacman-15eea825e65e4ed1e7e186cb1f3535ed04b71373.tar.gz
pacman-15eea825e65e4ed1e7e186cb1f3535ed04b71373.tar.xz
pacdiff: rework search type handling, add --find option
Change cmd tests to if (( USE_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@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'contrib/pacdiff.sh.in')
-rw-r--r--contrib/pacdiff.sh.in33
1 files changed, 22 insertions, 11 deletions
diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in
index a64be4ce..17b0220b 100644
--- a/contrib/pacdiff.sh.in
+++ b/contrib/pacdiff.sh.in
@@ -23,9 +23,9 @@ declare -r myver='@PACKAGE_VERSION@'
diffprog=${DIFFPROG:-vimdiff}
diffsearchpath=${DIFFSEARCHPATH:-/etc}
-locate=0
USE_COLOR='y'
declare -a oldsaves
+declare -i USE_FIND=0 USE_LOCATE=0
m4_include(../scripts/library/output_format.sh)
@@ -33,10 +33,13 @@ usage() {
cat <<EOF
$myname is a simple pacnew/pacorig/pacsave updater.
-Usage: $myname [-l]
+Usage: $myname [-l | -f] [--nocolor]
-Options:
- -l/--locate scan using locate (default: find)
+Search Options: select one, default: find
+ -l/--locate scan using locate
+ -f/--find scan using find
+
+General Options:
--nocolor remove colors from output
Enviroment Variables:
@@ -56,9 +59,9 @@ version() {
}
cmd() {
- if [ $locate -eq 1 ]; then
+ if (( USE_LOCATE )); then
locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave '*.pacsave.[0-9]*'
- else
+ elif (( USE_FIND )); then
find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave -o -name '*.pacsave.[0-9]*' \) -print0
fi
}
@@ -66,21 +69,29 @@ cmd() {
while [[ -n "$1" ]]; do
case "$1" in
-l|--locate)
- locate=1;;
+ USE_LOCATE=1;;
+ -f|--find)
+ USE_FIND=1;;
--nocolor)
- USE_COLOR='n' ;;
+ USE_COLOR='n' ;;
-V|--version)
- version; exit 0;;
+ version; exit 0;;
-h|--help)
- usage; exit 0;;
+ usage; exit 0;;
*)
- usage; exit 1;;
+ usage; exit 1;;
esac
shift
done
m4_include(../scripts/library/term_colors.sh)
+case $(( USE_FIND + USE_LOCATE )) in
+ 0) USE_FIND=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*}"