<div dir="ltr">Great, thanks Kevin.  My reasons for including the environment variable configuration probably had to do with the fact that I chose 15 characters as the default pretty arbitrarily.  It seems long enough to me, but maybe some folks with more security needs might want it to default to 20, for example.  I wasn't sure exactly what the best default length would be, so that's partly why I included the override.  But I think you make a good point about just overriding it on the command line, so I'll defer to you all!<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Nathan Wallace<div><a href="http://nosuchthingastwo.com" target="_blank">nosuchthingastwo.com</a></div><div><br></div></div></div></div>
<br><div class="gmail_quote">On Fri, Dec 18, 2015 at 7:13 AM, Kevin Cox <span dir="ltr"><<a href="mailto:kevincox@kevincox.ca" target="_blank">kevincox@kevincox.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I think this is a great idea and the code looks good at a quick glance. A small bikeshed comment is that I don't think that default is required in the environment variable because it is probably expected that the command line argument will override. So 'PASSWORD_STORE_LENGTH' would be sufficient IMHO. </p>
<div class="gmail_quote"><div><div class="h5">On Dec 18, 2015 12:18 AM, "Nathan Wallace" <<a href="mailto:nathan@nosuchthingastwo.com" target="_blank">nathan@nosuchthingastwo.com</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">---<br>
 src/password-store.sh         | 9 ++++++---<br>
 tests/t0010-generate-tests.sh | 6 ++++++<br>
 2 files changed, 12 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/password-store.sh b/src/password-store.sh<br>
index d535a74..ad6d367 100755<br>
--- a/src/password-store.sh<br>
+++ b/src/password-store.sh<br>
@@ -15,6 +15,7 @@ which gpg2 &>/dev/null && GPG="gpg2"<br>
 PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}"<br>
 X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}"<br>
 CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}"<br>
+DEFAULT_LENGTH="${PASSWORD_STORE_DEFAULT_LENGTH:-15}"<br>
<br>
 export GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git"<br>
 export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}"<br>
@@ -234,8 +235,9 @@ cmd_usage() {<br>
                overwriting existing password unless forced.<br>
            $PROGRAM edit pass-name<br>
                Insert a new password or edit an existing password using ${EDITOR:-vi}.<br>
-           $PROGRAM generate [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length<br>
+           $PROGRAM generate [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name [pass-length]<br>
                Generate a new password of pass-length with optionally no symbols.<br>
+               If pass-length is not specified, the password will be $DEFAULT_LENGTH characters long.<br>
                Optionally put it on the clipboard and clear board after $CLIP_TIME seconds.<br>
                Prompt before overwriting existing password unless forced.<br>
                Optionally replace only the first line of an existing file with a new password.<br>
@@ -441,9 +443,10 @@ cmd_generate() {<br>
                --) shift; break ;;<br>
        esac done<br>
<br>
-       [[ $err -ne 0 || $# -ne 2 || ( $force -eq 1 && $inplace -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length"<br>
+       [[ $err -ne 0 || ( $# -ne 1 && $# -ne 2 ) || ( $force -eq 1 && $inplace -eq 1 ) ]] &&<br>
+               die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name [pass-length]"<br>
        local path="$1"<br>
-       local length="$2"<br>
+       local length="${2:-$DEFAULT_LENGTH}"<br>
        check_sneaky_paths "$path"<br>
        [[ ! $length =~ ^[0-9]+$ ]] && die "Error: pass-length \"$length\" must be a number."<br>
        mkdir -p -v "$PREFIX/$(dirname "$path")"<br>
diff --git a/tests/t0010-generate-tests.sh b/tests/t0010-generate-tests.sh<br>
index cadb76f..5212f8d 100755<br>
--- a/tests/t0010-generate-tests.sh<br>
+++ b/tests/t0010-generate-tests.sh<br>
@@ -16,4 +16,10 @@ test_expect_success 'Test replacement of first line' '<br>
        [[ $("$PASS" show cred2) == "$(printf "This is a fake password\\npassword\\nwith\\nmany\\nlines\\nin it bla bla")" ]]<br>
 '<br>
<br>
+test_expect_success 'Test "generate" default length' '<br>
+       "$PASS" init $KEY1 &&<br>
+       "$PASS" generate cred3 &&<br>
+       [[ $("$PASS" show cred3 | wc -m) -eq 16 ]]<br>
+'<br>
+<br>
 test_done<br>
--<br>
2.5.0<br>
<br></div></div>
_______________________________________________<br>
Password-Store mailing list<br>
<a href="mailto:Password-Store@lists.zx2c4.com" target="_blank">Password-Store@lists.zx2c4.com</a><br>
<a href="http://lists.zx2c4.com/mailman/listinfo/password-store" rel="noreferrer" target="_blank">http://lists.zx2c4.com/mailman/listinfo/password-store</a><br>
</blockquote></div>
</blockquote></div><br></div>