1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-29 09:50:59 +02:00

Improve interactive prompt

- Revert usage of "read -q" for authentication (#10)
 - Change format of "not authenticated" message (#9)
This commit is contained in:
Daniel Hahler 2014-11-27 13:33:04 +01:00
parent 03fd619614
commit 5e18125f04
5 changed files with 48 additions and 48 deletions

View File

@ -154,10 +154,14 @@ _autoenv_deauthorize() {
} }
# This function can be mocked in tests # This function can be mocked in tests
_autoenv_read_answer() { _autoenv_ask_for_yes() {
local answer local answer
read $=_AUTOENV_TEST_READ_ARGS -q answer read answer
echo $answer if [[ $answer == "yes" ]]; then
return 0
else
return 1
fi
} }
# Args: 1: absolute path to env file (resolved symlinks). # Args: 1: absolute path to env file (resolved symlinks).
@ -166,7 +170,8 @@ _autoenv_check_authorized_env_file() {
return 1 return 1
fi fi
if ! _autoenv_authorized_env_file $1; then if ! _autoenv_authorized_env_file $1; then
echo "Attempting to load unauthorized env file: $1" echo "Attempting to load unauthorized env file!"
command ls -l $1
echo "" echo ""
echo "**********************************************" echo "**********************************************"
echo "" echo ""
@ -174,11 +179,9 @@ _autoenv_check_authorized_env_file() {
echo "" echo ""
echo "**********************************************" echo "**********************************************"
echo "" echo ""
echo -n "Would you like to authorize it? [y/N] " echo -n "Would you like to authorize it? (type 'yes') "
local answer=$(_autoenv_read_answer) if ! _autoenv_ask_for_yes; then
echo
if [[ $answer != 'y' ]]; then
return 1 return 1
fi fi

View File

@ -14,9 +14,10 @@ Now try to make it accept it
$ unset _autoenv_stack_entered $ unset _autoenv_stack_entered
$ rm $AUTOENV_ENV_FILENAME $ rm $AUTOENV_ENV_FILENAME
$ _autoenv_read_answer() { echo 'y' } $ _autoenv_ask_for_yes() { echo "yes" }
$ cd . $ cd .
Attempting to load unauthorized env file: /tmp/cramtests-??????/autoenv.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/autoenv.t/.env (glob)
********************************************** **********************************************
@ -24,16 +25,13 @@ Now try to make it accept it
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') yes
ENTERED ENTERED
The last "ENTERED" is because it executed the command.
Now lets see that it actually checks the shasum value.
The last "ENTERED" is because it executed the command
Now lets see that it actually checks the shasum value
$ unset _autoenv_stack_entered $ unset _autoenv_stack_entered
$ cd . $ cd .
@ -43,7 +41,8 @@ Now lets see that it actually checks the shasum value
$ rm $AUTOENV_ENV_FILENAME $ rm $AUTOENV_ENV_FILENAME
$ test_autoenv_add_to_env $PWD/.env mischief $ test_autoenv_add_to_env $PWD/.env mischief
$ cd . $ cd .
Attempting to load unauthorized env file: /tmp/cramtests-??????/autoenv.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/autoenv.t/.env (glob)
********************************************** **********************************************
@ -51,20 +50,18 @@ Now lets see that it actually checks the shasum value
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') yes
ENTERED ENTERED
Now, will it take no for an answer? Now, will it take no for an answer?
$ unset _autoenv_stack_entered $ unset _autoenv_stack_entered
$ rm $AUTOENV_ENV_FILENAME $ rm $AUTOENV_ENV_FILENAME
$ _autoenv_read_answer() { echo 'n' } $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd . $ cd .
Attempting to load unauthorized env file: /tmp/cramtests-??????/autoenv.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/autoenv.t/.env (glob)
********************************************** **********************************************
@ -72,16 +69,14 @@ Now, will it take no for an answer?
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') no
Lets also try one more time to ensure it didn't add it.
Lets also try one more time to ensure it didnt add it
$ cd . $ cd .
Attempting to load unauthorized env file: /tmp/cramtests-??????/autoenv.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/autoenv.t/.env (glob)
********************************************** **********************************************
@ -89,4 +84,4 @@ Lets also try one more time to ensure it didnt add it
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') no

View File

@ -9,9 +9,10 @@ Lets set a simple .env action
Change to the directory. Change to the directory.
$ _autoenv_read_answer() { echo 'y' } $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd . $ cd .
Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.env (glob)
********************************************** **********************************************
@ -19,15 +20,16 @@ Change to the directory.
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') yes
ENTERED ENTERED
Leave the directory and answer "no". Leave the directory and answer "no".
$ _autoenv_read_answer() { echo 'n' } $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd .. $ cd ..
Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env.leave (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.env.leave (glob)
********************************************** **********************************************
@ -35,14 +37,15 @@ Leave the directory and answer "no".
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') no
$ cd sub $ cd sub
ENTERED ENTERED
$ _autoenv_read_answer() { echo 'y' } $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd .. $ cd ..
Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env.leave (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.env.leave (glob)
********************************************** **********************************************
@ -50,7 +53,7 @@ Leave the directory and answer "no".
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') yes
LEFT LEFT

View File

@ -110,10 +110,11 @@ Changing the root .env should trigger re-authentication via autoenv_source_paren
First, let's answer "no". First, let's answer "no".
$ echo "echo NEW" > .env $ echo "echo NEW" > .env
$ _autoenv_read_answer() { echo 'n' } $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd sub $ cd sub
autoenv_source_parent_from_sub: autoenv_source_parent_from_sub:
Attempting to load unauthorized env file: /tmp/cramtests-*/recurse-upwards.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/recurse-upwards.t/.env (glob)
********************************************** **********************************************
@ -121,7 +122,7 @@ First, let's answer "no".
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') no
ENTERED_sub: PWD:sub from:recurse-upwards.t to:sub ENTERED_sub: PWD:sub from:recurse-upwards.t to:sub
ENTER2 ENTER2
done_sub done_sub
@ -129,7 +130,7 @@ First, let's answer "no".
Now with "yes". Now with "yes".
This currently does not trigger re-execution of the .env file. This currently does not trigger re-execution of the .env file.
$ _autoenv_read_answer() { echo 'y' } $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd . $ cd .
Touching the .env file will now source the parent env file. Touching the .env file will now source the parent env file.
@ -137,7 +138,8 @@ Touching the .env file will now source the parent env file.
$ touch -t 201401010104 .env $ touch -t 201401010104 .env
$ cd . $ cd .
autoenv_source_parent_from_sub: autoenv_source_parent_from_sub:
Attempting to load unauthorized env file: /tmp/cramtests-*/recurse-upwards.t/.env (glob) Attempting to load unauthorized env file!
-* /tmp/cramtests-*/recurse-upwards.t/.env (glob)
********************************************** **********************************************
@ -145,7 +147,7 @@ Touching the .env file will now source the parent env file.
********************************************** **********************************************
Would you like to authorize it? [y/N] Would you like to authorize it? (type 'yes') yes
NEW NEW
ENTERED_sub: PWD:sub from:sub to:sub ENTERED_sub: PWD:sub from:sub to:sub
ENTER2 ENTER2

View File

@ -6,9 +6,6 @@
# Reset any authentication. # Reset any authentication.
echo -n > $AUTOENV_ENV_FILENAME echo -n > $AUTOENV_ENV_FILENAME
# Inject timeout for `read` while running tests.
_AUTOENV_TEST_READ_ARGS='-t 1'
# Add file $1 (with optional hash $2) to authentication file. # Add file $1 (with optional hash $2) to authentication file.
test_autoenv_add_to_env() { test_autoenv_add_to_env() {
_autoenv_hash_pair $1 $2 >> $AUTOENV_ENV_FILENAME _autoenv_hash_pair $1 $2 >> $AUTOENV_ENV_FILENAME