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:
parent
03fd619614
commit
5e18125f04
19
autoenv.zsh
19
autoenv.zsh
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user