summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 2488385..76c7385 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -37,9 +37,10 @@ Usage:
$program [show] [--clip,-c] pass-name
Show existing password and optionally put it on the clipboard.
If put on the clipboard, it will be cleared in 45 seconds.
- $program insert [--no-echo,-n | --multiline,-m] pass-name
+ $program insert [--no-echo,-n | --multiline,-m] [--force,-f] pass-name
Insert new password. Optionally, the console can be enabled to not
- echo the password back. Or, optionally, it may be multiline.
+ echo the password back. Or, optionally, it may be multiline. Prompt
+ before overwriting existing password unless forced.
$program edit pass-name
Insert a new password or edit an existing password using ${EDITOR:-vi}.
$program generate [--no-symbols,-n] [--clip,-c] pass-name pass-length
@@ -170,24 +171,26 @@ case "$command" in
insert)
ml=0
noecho=0
+ force=0
- opts="$(getopt -o mn -l multiline,no-echo -n $program -- "$@")"
+ opts="$(getopt -o mnf -l multiline,no-echo,force -n $program -- "$@")"
err=$?
eval set -- "$opts"
while true; do case $1 in
-m|--multiline) ml=1; shift ;;
-n|--no-echo) noecho=1; shift ;;
+ -f|--force) force=1; shift ;;
--) shift; break ;;
esac done
if [[ $err -ne 0 || ( $ml -eq 1 && $noecho -eq 1 ) || $# -ne 1 ]]; then
- echo "Usage: $program $command [--no-echo,-n | --multiline,-m] pass-name"
+ echo "Usage: $program $command [--no-echo,-n | --multiline,-m] [--force,-f] pass-name"
exit 1
fi
path="$1"
passfile="$PREFIX/$path.gpg"
- if [[ -e $passfile ]]; then
+ if [[ $force -eq 0 && -e $passfile ]]; then
prompt="An entry already exists for $path. Overwrite it [y/N]? "
read -p "$prompt" yesno
[[ $yesno == "y" || $yesno == "Y" ]] || exit 1