summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG14
-rw-r--r--WISHLIST3
-rwxr-xr-xpwgrep.sh74
3 files changed, 66 insertions, 25 deletions
diff --git a/CHANGELOG b/CHANGELOG
index abd3e7d..5fdbb06 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,17 @@
+Mo 3. Jan 07:41:13 CET 2011
+* Tagged v0.8
+* Since pwgrep consinsts of very small updates only no more branches
+ except of trunk are used from now on.
+
+Mi 22. Dez 12:40:10 CET 2010 - v0.8-pre-4
+* Added option -a which searches all available databases at once.
+ This feature needs gpg-agent installed. Otherwise the gpg key passphrase
+ needs to be entered for each file separately .
+* Some bugfix (using -z "$VAR" instead of -z $VAR)
+
+Mi 22. Dez 11:49:33 CET 2010 - v0.8-pre-3
+* Added WISHLIST file
+
Fri Dec 10 14:22:04 CET 2010 - v0.8-pre-2
* Set default db to private.gpg
diff --git a/WISHLIST b/WISHLIST
new file mode 100644
index 0000000..dd398d4
--- /dev/null
+++ b/WISHLIST
@@ -0,0 +1,3 @@
+This file contains all features which may be added in the future.
+
+* pwgrepa command: Greps all available databases at once.
diff --git a/pwgrep.sh b/pwgrep.sh
index 749757d..8df11fd 100755
--- a/pwgrep.sh
+++ b/pwgrep.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# pwgrep v0.8-pre-2 (c) 2009, 2010 by Paul Buetow
+# pwgrep v0.8-pre-4 (c) 2009, 2010 by Paul Buetow
# pwgrep helps you to manage all your passwords using GnuGP
# for encryption and a versioning system (subversion by default)
# for keeping track all changes of your password database. In
@@ -127,29 +127,37 @@ function setwipecmd () {
function pwgrep () {
search=$1
- info Searching for $search
-
- gpg --decrypt $PWGREPDB | $AWK -v search="$search" '
- BEGIN {
- flag=0
- IGNORECASE=1
- }
- !/^\t/ {
- if (!flag && $0 ~ search) {
- flag=1
- print $0
- } else if (flag && $0 ~ search) {
- print $0
- } else if (flag) {
- flag=0
- }
- } /^\t/ && flag {
- print $0
- }'
+
+ if [ -z "$ALL" ]; then
+ dbs=$PWGREPDB
+ else
+ dbs=$(_pwdbls | sed 's/$/.gpg/')
+ fi
+
+ for db in $dbs; do
+ info Searching for $search in $db
+ gpg --use-agent --decrypt $db | $AWK -v search="$search" '
+ BEGIN {
+ flag=0
+ IGNORECASE=1
+ }
+ !/^\t/ {
+ if (!flag && $0 ~ search) {
+ flag=1
+ print $0
+ } else if (flag && $0 ~ search) {
+ print $0
+ } else if (flag) {
+ flag=0
+ }
+ } /^\t/ && flag {
+ print $0
+ }'
+ done
}
function pwupdate () {
- if [ -z $NOVERSIONING ]; then
+ if [ -z "$NOVERSIONING" ]; then
info Updating repository
$VERSIONUPDATE 2>&1 >/dev/null
fi
@@ -164,12 +172,16 @@ function pwedit () {
gpg --output .$PWGREPDB -e -r $GPGKEYID .database && \
$WIPE .database && \
mv .$PWGREPDB $PWGREPDB && \
- [ -z $NOVERSIONING ] && $VERSIONCOMMIT
+ [ -z "$NOVERSIONING" ] && $VERSIONCOMMIT
+}
+
+function _pwdbls () {
+ ls *.gpg | sed 's/\.gpg$//'
}
function pwdbls () {
echo Available Databases:
- ls *.gpg | sed 's/\.gpg$//'
+ _pwdbls
echo Current database: $PWGREPDB
}
@@ -207,7 +219,7 @@ function pwfadd () {
gpg --output $PWFILEDIREXT/${outfile}.gpg -e -r $GPGKEYID $srcfile && \
- if [ -z $NOVERSIONING ]; then
+ if [ -z "$NOVERSIONING" ]; then
$VERSIONADD $PWFILEDIREXT/${outfile}.gpg && $VERSIONCOMMIT
fi
}
@@ -219,7 +231,7 @@ function pwfdel () {
[ ! -e $PWFILEWORKDIR ] && error $PWFILEWORKDIR does not exist
[ -z $name ] && error Missing argument
- if [ -z $NOVERSIONING ]; then
+ if [ -z "$NOVERSIONING" ]; then
# Wipe even encrypted file securely
$WIPE $PWFILEDIREXT/${name}.gpg && \
touch $PWFILEDIREXT/${name}.gpg && $VERSIONCOMMIT && \
@@ -250,6 +262,7 @@ cat <<END
Where OPTS are:
-o - Offline mode
-d <DB NAME> - Using a specific DB
+ -a - Grepping all available DBs at once
END
}
@@ -283,6 +296,17 @@ function set_opts () {
PWGREPDB=$PWGREPDB.gpg
set_opts
;;
+ -a*)
+ # All DBs at once
+ which gpg-agent
+ if [ $? == "0" ]; then
+ ALL=1
+ ARGS=${ARGS[@]:2}
+ set_opts
+ else
+ error You need gpg-agent installed
+ fi
+ ;;
*)
esac
}