}
# This function can be mocked in tests
-_autoenv_read_answer() {
+_autoenv_ask_for_yes() {
local answer
- read $=_AUTOENV_TEST_READ_ARGS -q answer
- echo $answer
+ read answer
+ if [[ $answer == "yes" ]]; then
+ return 0
+ else
+ return 1
+ fi
}
# Args: 1: absolute path to env file (resolved symlinks).
return 1
fi
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 ""
- 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)
- echo
- if [[ $answer != 'y' ]]; then
+ if ! _autoenv_ask_for_yes; then
return 1
fi
$ unset _autoenv_stack_entered
$ rm $AUTOENV_ENV_FILENAME
- $ _autoenv_read_answer() { echo 'y' }
+ $ _autoenv_ask_for_yes() { echo "yes" }
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
ENTERED
+The last "ENTERED" is because it executed the command.
-
-
-The last "ENTERED" is because it executed the command
-
-Now lets see that it actually checks the shasum value
+Now lets see that it actually checks the shasum value.
$ unset _autoenv_stack_entered
$ cd .
$ rm $AUTOENV_ENV_FILENAME
$ test_autoenv_add_to_env $PWD/.env mischief
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
ENTERED
-
-
-
Now, will it take no for an answer?
$ unset _autoenv_stack_entered
$ rm $AUTOENV_ENV_FILENAME
- $ _autoenv_read_answer() { echo 'n' }
+ $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ 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)
**********************************************
**********************************************
- 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 didnt add it
+Lets also try one more time to ensure it didn't add it.
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') no
Change to the directory.
- $ _autoenv_read_answer() { echo 'y' }
+ $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
ENTERED
Leave the directory and answer "no".
- $ _autoenv_read_answer() { echo 'n' }
+ $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') no
$ cd sub
ENTERED
- $ _autoenv_read_answer() { echo 'y' }
+ $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ 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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
LEFT
First, let's answer "no".
$ echo "echo NEW" > .env
- $ _autoenv_read_answer() { echo 'n' }
+ $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd 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)
**********************************************
**********************************************
- 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
ENTER2
done_sub
Now with "yes".
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 .
Touching the .env file will now source the parent env file.
$ touch -t 201401010104 .env
$ cd .
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)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
NEW
ENTERED_sub: PWD:sub from:sub to:sub
ENTER2
# Reset any authentication.
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.
test_autoenv_add_to_env() {
_autoenv_hash_pair $1 $2 >> $AUTOENV_ENV_FILENAME