summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2010-07-28 16:42:25 +0000
committerPaul Buetow <paul@buetow.org>2010-07-28 16:42:25 +0000
commitcbc92677858fb6e7d4c5b1d6665f385ddc9a5077 (patch)
tree0c7e681e04edebdd7aff0ff16dbb81f58e74112b
parent3e22cd30134a4546effb5e627baa53dfa78bbc3c (diff)
-rwxr-xr-xpwgrep.sh43
1 files changed, 32 insertions, 11 deletions
diff --git a/pwgrep.sh b/pwgrep.sh
index 8f68ac4..d87cc48 100755
--- a/pwgrep.sh
+++ b/pwgrep.sh
@@ -53,9 +53,10 @@
# Only use mawk or gawk, but if possible not nawk. On *BSD awk=nawk. So try
# awk/nawk last. You can use nawk but nawk will not match case insensitive.
[ -z $TRYAWKLIST ] && TRYAWKLIST="mawk gawk awk nawk"
-
# Find the correct command to wipe temporaly files after usage
[ -z $TRYWIPELIST ] && TRYWIPELIST="destroy shred"
+# Same for sed
+[ -z $TRYSEDLIST ] && TRYSEDLIST="sed gsed"
# From here, do not change stuff!
@@ -97,6 +98,12 @@ function setawkcmd {
info Using $AWK
}
+function setsedcmd {
+ SED=`findbin "$TRYSEDLIST"`
+ [ -z $SED ] && error No sed found in $PATH
+ info Using $SED
+}
+
function setwipecmd {
WIPE=`findbin "$TRYWIPELIST"`
@@ -142,9 +149,9 @@ function pwedit () {
gpg --decrypt $PWGREPDB > .database && \
vim --cmd 'set noswapfile' --cmd 'set nobackup' \
--cmd 'set nowritebackup' .database && \
- gpg --output .database.gpg -e -r $GPGKEYID .database && \
+ gpg --output .$PWGREPDB -e -r $GPGKEYID .database && \
$WIPE .database && \
- mv .database.gpg $PWGREPDB && \
+ mv .$PWGREPDB $PWGREPDB && \
[ -z $NOVERSIONING ] && $VERSIONCOMMIT
}
@@ -213,19 +220,33 @@ function fwipe () {
}
setawkcmd
+setsedcmd
setwipecmd
BASENAME=`basename $0`
ARGS=$@
-case $1 in
- -o)
- # Offlinemode
- NOVERSIONING=1
- ARGS=${ARGS[@]:2}
- ;;
- *)
-esac
+
+function set_opts () {
+ case $ARGS in
+ -o*)
+ # Offlinemode
+ NOVERSIONING=1
+ ARGS=${ARGS[@]:2}
+ set_opts
+ ;;
+ -d*)
+ # Alternate DB
+ PWGREPDB=`echo $ARGS | $AWK '{ print $2 }'`
+ ARGS=`echo $ARGS | $SED "s/-d $PWGREPDB//"`
+ PWGREPDB=$PWGREPDB.gpg
+ set_opts
+ ;;
+ *)
+ esac
+}
+
+set_opts $ARGS
case $BASENAME in
pwgrep)