diff options
| author | Paul Buetow <paul@buetow.org> | 2011-01-03 06:43:52 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2011-01-03 06:43:52 +0000 |
| commit | 8f2cfa0e6973c0e3856e3b584ea5148a1b1e1c40 (patch) | |
| tree | 810bde163afa7a2d7fa005d3714448cb2d318bae | |
| parent | 3995baacc15adf68636e85248ec22cb6f3ca7588 (diff) | |
released v0.80.8
| -rw-r--r-- | CHANGELOG | 14 | ||||
| -rw-r--r-- | WISHLIST | 3 | ||||
| -rwxr-xr-x | pwgrep.sh | 74 |
3 files changed, 66 insertions, 25 deletions
@@ -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. @@ -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 } |
