Password-Store Digest, Vol 70, Issue 1

Eddie Barraco contact at eddiebarraco.fr
Thu Mar 7 19:25:47 CET 2019


Hello anyone,

I allow myself to contact again about my issue.
I'd realy like to have feedbacks about all this.
Thank you by advance

Kiss,
Eddie

On Sat, Mar 02, 2019 at 12:00:01PM +0100, password-store-request at lists.zx2c4.com wrote:
> Send Password-Store mailing list submissions to
> 	password-store at lists.zx2c4.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://lists.zx2c4.com/mailman/listinfo/password-store
> or, via email, send a message with subject or body 'help' to
> 	password-store-request at lists.zx2c4.com
>
> You can reach the person managing the list at
> 	password-store-owner at lists.zx2c4.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Password-Store digest..."
>
>
> Today's Topics:
>
>    1. [PATCH] feat: Allow to show selected line (Eddie Barraco)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri,  1 Mar 2019 21:19:05 +0100
> From: Eddie Barraco <contact at eddiebarraco.fr>
> To: password-store at lists.zx2c4.com
> Cc: Eddie Barraco <contact at eddiebarraco.fr>
> Subject: [PATCH] feat: Allow to show selected line
> Message-ID: <20190301201905.31840-1-contact at eddiebarraco.fr>
>
> An annoying problem was that pass didn't allow to show only some
> specific line (generaly the first). In some program configuration, we
> had to trick to get the password prompted:
>
> Example:
>
> ```
> ~/.msmtprc
> passwordeval   "pass show db/Email/Contact/contact at eddiebarraco.fr | head -1"
> ```
>
> The problem can be tricked only if el famoso program allow to use
> redirections and pipes. In some cases the trick become really annoying...
>
> Example:
>
> ```
> ~/.config/vdirsyncer/config
> password.fetch = ["command", "/home/eddie/bin/passfirst", "db/Internet/Nextcloud"]
> ```
>
> ```
> ~/bin/passfirst
> pass show "$1" | head -1
> ```
>
> I thinked about this problem from some times and I think I got a point.
>
> The qrcode and clip logic seems to be too coupled to the line selection
> logic and this generate two problems :
> -> We cannot clip and qrcode all the lines
> -> we cannot show specific lines
>
> So I tried to seperate both logics with a dedicated parameter (--selected-line|-s)
>
> -c and -q will both use selected lines (all the lines if unspecified)
> -s will allow to select a specific line (the first line if no line number is used)
>
> Here is a proof of concept and I need reviews to make it better.
>
> The changes will breaks old logics ! If you previously used '-c 1' or '-q 1', it
> will no longer works. You'll have to '-c -s 1' or '-q -s 1'. But the
> price is worth IMHO cause we will be able to do more things.
>
> TY dudes, good night.
> ---
>  src/password-store.sh | 28 +++++++++++++++++++---------
>  1 file changed, 19 insertions(+), 9 deletions(-)
>
> diff --git a/src/password-store.sh b/src/password-store.sh
> index 284eabf..1c6c786 100755
> --- a/src/password-store.sh
> +++ b/src/password-store.sh
> @@ -281,7 +281,7 @@ cmd_usage() {
>  	        List passwords.
>  	    $PROGRAM find pass-names...
>  	    	List passwords that match pass-names.
> -	    $PROGRAM [show] [--clip[=line-number],-c[line-number]] pass-name
> +	    $PROGRAM [show] [--clip,-c | --qrcode,-q] [--selected-line[=line-number],-s[line-number]] pass-name
>  	        Show existing password and optionally put it on the clipboard.
>  	        If put on the clipboard, it will be cleared in $CLIP_TIME seconds.
>  	    $PROGRAM grep [GREPOPTIONS] search-string
> @@ -363,17 +363,18 @@ cmd_init() {
>  }
>
>  cmd_show() {
> -	local opts selected_line clip=0 qrcode=0
> -	opts="$($GETOPT -o q::c:: -l qrcode::,clip:: -n "$PROGRAM" -- "$@")"
> +	local opts selected_line=0 clip=0 qrcode=0
> +	opts="$($GETOPT -o q::c::s:: -l qrcode::,clip::,selected-line:: -n "$PROGRAM" -- "$@")"
>  	local err=$?
>  	eval set -- "$opts"
>  	while true; do case $1 in
> -		-q|--qrcode) qrcode=1; selected_line="${2:-1}"; shift 2 ;;
> -		-c|--clip) clip=1; selected_line="${2:-1}"; shift 2 ;;
> +		-q|--qrcode) qrcode=1; shift 2 ;;
> +		-c|--clip) clip=1; shift 2 ;;
> +		-s|--selected-line) selected_line="${2:-1}"; shift 2 ;;
>  		--) shift; break ;;
>  	esac done
>
> -	[[ $err -ne 0 || ( $qrcode -eq 1 && $clip -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--clip[=line-number],-c[line-number]] [--qrcode[=line-number],-q[line-number]] [pass-name]"
> +	[[ $err -ne 0 || ( $qrcode -eq 1 && $clip -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--clip,-c | --qrcode,-q] [--selected-line[=line-number],-s[line-number]] [pass-name]"
>
>  	local pass
>  	local path="$1"
> @@ -381,11 +382,20 @@ cmd_show() {
>  	check_sneaky_paths "$path"
>  	if [[ -f $passfile ]]; then
>  		if [[ $clip -eq 0 && $qrcode -eq 0 ]]; then
> -			pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | $BASE64)" || exit $?
> +			if [[ $selected_line -eq 0 ]]; then
> +				pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | $BASE64)" || exit $?
> +			else
> +				[[ $selected_line =~ ^[0-9]+$ ]] || die "Clip location '$selected_line' is not a number."
> +				pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | tail -n +${selected_line} | head -n 1 | $BASE64)" || exit $?
> +			fi
>  			echo "$pass" | $BASE64 -d
>  		else
> -			[[ $selected_line =~ ^[0-9]+$ ]] || die "Clip location '$selected_line' is not a number."
> -			pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | tail -n +${selected_line} | head -n 1)" || exit $?
> +			if [[ $selected_line -eq 0 ]]; then
> +				pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile")" || exit $?
> +			else
> +				[[ $selected_line =~ ^[0-9]+$ ]] || die "Clip location '$selected_line' is not a number."
> +				pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | tail -n +${selected_line} | head -n 1)" || exit $?
> +			fi
>  			[[ -n $pass ]] || die "There is no password to put on the clipboard at line ${selected_line}."
>  			if [[ $clip -eq 1 ]]; then
>  				clip "$pass" "$path"
> --
> 2.21.0
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Password-Store mailing list
> Password-Store at lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/password-store
>
>
> ------------------------------
>
> End of Password-Store Digest, Vol 70, Issue 1
> *********************************************


More information about the Password-Store mailing list