]> Sergey Matveev's repositories - zsh-autoenv.git/commitdiff
Improve interactive prompt
authorDaniel Hahler <git@thequod.de>
Thu, 27 Nov 2014 12:33:04 +0000 (13:33 +0100)
committerDaniel Hahler <git@thequod.de>
Thu, 27 Nov 2014 12:33:04 +0000 (13:33 +0100)
 - Revert usage of "read -q" for authentication (#10)
 - Change format of "not authenticated" message (#9)

autoenv.zsh
tests/autoenv.t
tests/leave.t
tests/recurse-upwards.t
tests/setup.sh

index 034b7fef1fae69ad1f30026449877b079ecd736c..f770d8a3f8f203a231a7ba817f73922f5c9079d1 100644 (file)
@@ -154,10 +154,14 @@ _autoenv_deauthorize() {
 }
 
 # 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).
@@ -166,7 +170,8 @@ _autoenv_check_authorized_env_file() {
     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 ""
@@ -174,11 +179,9 @@ _autoenv_check_authorized_env_file() {
     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
 
index f78560a8e905a68aa08a46dafe99ceb57e45ce6d..19d0592d95f28c9f90c27b14da00db1b55455907 100644 (file)
@@ -14,9 +14,10 @@ Now try to make it accept it
 
   $ 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)
   
   **********************************************
   
@@ -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
 
 
+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 .
@@ -43,7 +41,8 @@ Now lets see that it actually checks the shasum value
   $ 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)
   
   **********************************************
   
@@ -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
 
 
-
-
-
 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)
   
   **********************************************
   
@@ -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 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)
   
   **********************************************
   
@@ -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
index d5531b142d9c7ae1eae5f04bc95e84b63384fbfc..2e4e36089d730aebd92e52405bb288ab0d6bb638 100644 (file)
@@ -9,9 +9,10 @@ Lets set a simple .env action
 
 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)
   
   **********************************************
   
@@ -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
 
 
 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)
   
   **********************************************
   
@@ -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
   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)
   
   **********************************************
   
@@ -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
 
 
index 7a6f28f31ef1a4e13295883c924606ea3b2d94ef..f4c2780c75368fc1c77c11d52518d53dda2e64f1 100644 (file)
@@ -110,10 +110,11 @@ Changing the root .env should trigger re-authentication via autoenv_source_paren
 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)
   
   **********************************************
   
@@ -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
   ENTER2
   done_sub
@@ -129,7 +130,7 @@ First, let's answer "no".
 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.
@@ -137,7 +138,8 @@ 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)
   
   **********************************************
   
@@ -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
   ENTERED_sub: PWD:sub from:sub to:sub
   ENTER2
index d5a4f6e385c9222e2149a5a203050a4a9b7cac2e..90bfc510b7a37ba88641af01bcc4a022459cedef 100644 (file)
@@ -6,9 +6,6 @@
 # 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