diff options
| -rw-r--r-- | man/pass.1 | 4 | ||||
| -rwxr-xr-x | src/password-store.sh | 16 | 
2 files changed, 18 insertions, 2 deletions
| @@ -63,7 +63,9 @@ Note that use of  is recommended so that the batch decryption does not require as much user  intervention. If \fI--path\fP or \fI-p\fP is specified, along with an argument,  a specific gpg-id or set of gpg-ids is assigned for that specific sub folder of -the password store. +the password store. If only one \fIgpg-id\fP is given, and it is an empty string, +then the current \fI.gpg-id\fP file for the specified \fIsub-folder\fP (or root if +unspecified) is removed.  .TP  \fBls\fP \fIsubfolder\fP  List names of passwords inside the tree at diff --git a/src/password-store.sh b/src/password-store.sh index 0aa5787..fe21e19 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -263,8 +263,22 @@ cmd_init() {  		fi  	fi -	mkdir -v -p "$PREFIX/$id_path"  	local gpg_id="$PREFIX/$id_path/.gpg-id" + +	if [[ $# -eq 1 && -z $1 ]]; then +		if [[ ! -f "$gpg_id" ]]; then +			echo "Error: $gpg_id does not exist and so cannot be removed." +			exit 1 +		fi +		rm -v -f "$gpg_id" || exit 1 +		if [[ -d $GIT_DIR ]]; then +			git rm -qr "$gpg_id" +			git_commit "Deinitialized ${gpg_id}." +		fi +		exit 0 +	fi + +	mkdir -v -p "$PREFIX/$id_path"  	printf "%s\n" "$@" > "$gpg_id"  	local id_print="$(printf "%s, " "$@")"  	echo "Password store initialized for ${id_print%, }" |