Hello, Just wanted to ask what the status of this is. Are there any plans to merge it?
Thank you. Best, Calin On Fri, Jan 18, 2019 at 11:57 AM Tobias Girstmair <[email protected]> wrote: > This is great! Ack from me (whatever little that counts). > > lg > > On Fri, Jan 18, 2019 at 11:43:49AM +0100, Calin Iorgulescu wrote: > >Hello, > > > >@Tobias: > > > >> That's something that has been bugging me for years! Is there any reason > >> why `generate -m` doesn't expect lines on stdin, like `insert -m` does? > >> > > > >No particular reason. I don't really use the '--multiline' mode as part > of my workflow, so implementing it as a list of arguments seemed to make > more sense at the time. > > > >@Tristan: > > > >> Thanks for this -- this is a wishlist item that I raised here on > >> December 28. Your patch is one solution to the problem, but I have to > >> question why you haven't made your "-m" option for "pass generate" work > >> the same way it does for "pass insert" (i.e., by reading the extra lines > >> from stdin rather than from command-line arguments). I think having two > >> different behaviours for the same command will lead to a lot of > >> confusion. (Also, why not provide an additional long option version > >> named "--multiline", as "pass insert" does?) > > > >As I mentioned above to Tobias, this just felt more natural at the time. > But I agree that having different behaviors for the same flag is confusing. > Hence this new patch. > > > >@Pass Word: > >> One nice thing about the multiple -m options on the command line is you > could do something like this: > >> > >> -m "user: "$(pass generate -n deleteme 10 2>/dev/null| tail -1) > > > >That's a nice use case I hadn't considered! Presumably, one could even > use a tool like 'pwgen' instead of poluting pass's git history with a > "deleteme" password. > >This could still be done using the way that multiline behaves for > inserts. For example, the same line could be written as: > > > >$ echo "user:"$(pwgen 15 1) | pass generate -m widgets.com 30 > > > > > >@all: > > > >I am glad to see this feature raises some interest! As mentioned above, I > do think it's worth being consistent with the behavior of '-m' for insert. > This patch does just that: it aims to implement '-m' in the same way that > it is done for insert. Additionally, it prints out an error message if '-m' > is used together with '-i' (as there might be several ways to merge > existing multiline entries when changing the password in-place). > > > >Best, > >Calin > > > >--- > > src/password-store.sh | 19 ++++++++++++++----- > > 1 file changed, 14 insertions(+), 5 deletions(-) > > > >diff --git a/src/password-store.sh b/src/password-store.sh > >index d89d455..406820a 100755 > >--- a/src/password-store.sh > >+++ b/src/password-store.sh > >@@ -276,7 +276,7 @@ cmd_usage() { > > 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] [--in-place,-i > | --force,-f] pass-name [pass-length] > >+ $PROGRAM generate [--no-symbols,-n] [--clip,-c] [--in-place,-i > | --force,-f] [--multiline,-m] pass-name [pass-length] > > Generate a new password of pass-length (or > $GENERATED_LENGTH if unspecified) with optionally no symbols. > > Optionally put it on the clipboard and clear board after > $CLIP_TIME seconds. > > Prompt before overwriting existing password unless forced. > >@@ -491,8 +491,8 @@ cmd_edit() { > > } > > > > cmd_generate() { > >- local opts qrcode=0 clip=0 force=0 characters="$CHARACTER_SET" > inplace=0 pass > >- opts="$($GETOPT -o nqcif -l no-symbols,qrcode,clip,in-place,force > -n "$PROGRAM" -- "$@")" > >+ local opts qrcode=0 clip=0 force=0 characters="$CHARACTER_SET" > inplace=0 multiline=0 pass > >+ opts="$($GETOPT -o nqcifm -l > no-symbols,qrcode,clip,in-place,force,multiline -n "$PROGRAM" -- "$@")" > > local err=$? > > eval set -- "$opts" > > while true; do case $1 in > >@@ -501,10 +501,12 @@ cmd_generate() { > > -c|--clip) clip=1; shift ;; > > -f|--force) force=1; shift ;; > > -i|--in-place) inplace=1; shift ;; > >+ -m|--multiline) multiline=1; shift ;; > > --) shift; break ;; > > esac done > > > >- [[ $err -ne 0 || ( $# -ne 2 && $# -ne 1 ) || ( $force -eq 1 && > $inplace -eq 1 ) || ( $qrcode -eq 1 && $clip -eq 1 ) ]] && die "Usage: > $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--qrcode,-q] > [--in-place,-i | --force,-f] pass-name [pass-length]" > >+ [[ $err -ne 0 || ( $# -ne 2 && $# -ne 1 ) || ( $force -eq 1 && > $inplace -eq 1 ) || ( $qrcode -eq 1 && $clip -eq 1 ) ]] && die "Usage: > $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--qrcode,-q] > [--in-place,-i | --force,-f] [--multiline,m] pass-name [pass-length]" > >+ [[ $inplace -eq 1 && $multiline -eq 1 ]] && die "Error: multiline > entries are not allowed when replacing a password in-place." > > local path="$1" > > local length="${2:-$GENERATED_LENGTH}" > > check_sneaky_paths "$path" > >@@ -520,7 +522,14 @@ cmd_generate() { > > read -r -n $length pass < <(LC_ALL=C tr -dc "$characters" < > /dev/urandom) > > [[ ${#pass} -eq $length ]] || die "Could not generate password > from /dev/urandom." > > if [[ $inplace -eq 0 ]]; then > >- echo "$pass" | $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o > "$passfile" "${GPG_OPTS[@]}" || die "Password encryption aborted." > >+ if [[ $multiline -eq 1 ]]; then > >+ echo "Enter contents of $path and press Ctrl+D > when finished:" > >+ echo > >+ fi > >+ { > >+ echo "$pass" > >+ [[ $multiline -eq 1 ]] && cat || true > >+ } | $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" > "${GPG_OPTS[@]}" || die "Password encryption aborted." > > else > > local > passfile_temp="${passfile}.tmp.${RANDOM}.${RANDOM}.${RANDOM}.${RANDOM}.--" > > if { echo "$pass"; $GPG -d "${GPG_OPTS[@]}" "$passfile" | > tail -n +2; } | $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile_temp" > "${GPG_OPTS[@]}"; then > >-- > >2.20.1 > > > >_______________________________________________ > >Password-Store mailing list > >[email protected] > >https://lists.zx2c4.com/mailman/listinfo/password-store >
_______________________________________________ Password-Store mailing list [email protected] https://lists.zx2c4.com/mailman/listinfo/password-store
