summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2012-09-22 23:44:52 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2012-09-22 23:44:52 +0200
commitb9cc8f2f78283dfbf04de0891d67f5494d8f92f8 (patch)
tree6c36ad63f532b05b369df01e64e4000015d30496
parenta1811d68b7949150bca11b5ccfd30264cc7e0eab (diff)
downloadpass-b9cc8f2f78283dfbf04de0891d67f5494d8f92f8.tar.gz
pass-b9cc8f2f78283dfbf04de0891d67f5494d8f92f8.tar.bz2
pass-b9cc8f2f78283dfbf04de0891d67f5494d8f92f8.zip
Fix directory removal.
Diffstat (limited to '')
-rwxr-xr-xsrc/password-store.sh13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/password-store.sh b/src/password-store.sh
index f642a03..5e168c1 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -349,13 +349,13 @@ case "$command" in
;;
delete|rm|remove)
recursive=""
- force="-i"
+ force=0
opts="$($GETOPT -o rf -l recursive,force -n "$program" -- "$@")"
err=$?
eval set -- "$opts"
while true; do case $1 in
-r|--recursive) recursive="-r"; shift ;;
- -f|--force) force="-f"; shift ;;
+ -f|--force) force=1; shift ;;
--) shift; break ;;
esac done
if [[ $# -ne 1 ]]; then
@@ -364,7 +364,7 @@ case "$command" in
fi
path="$1"
- passfile="$PREFIX/$path"
+ passfile="$PREFIX/${path%/}"
if ! [[ -d $passfile ]]; then
passfile="$PREFIX/$path.gpg"
if ! [[ -f $passfile ]]; then
@@ -372,9 +372,12 @@ case "$command" in
exit 1
fi
fi
- rm $recursive $force -v "$passfile"
+
+ [[ $force -eq 1 ]] || yesno "Are you sure you would like to delete $path?"
+
+ rm $recursive -f -v "$passfile"
if [[ -d $GIT_DIR && ! -e $passfile ]]; then
- git rm -r "$passfile"
+ git rm -qr "$passfile"
git commit -m "Removed $path from store."
fi
;;