de99d08b9844582448da7beb0130333d301a1ca0

Author
Michael Aquilina <michaelaquilina@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

Merge pull request #84 from MichaelAquilina/deactivate_message

Show message upon virtualenv deactivation

Diff

 1diff --git a/CHANGELOG.rst b/CHANGELOG.rst
 2index 828b2fa5c42a9aae8df77c39776bfa9a0e344499..37a82beb895617e9932f682f2ec8afcdd9b3ac08 100644
 3--- a/CHANGELOG.rst
 4+++ b/CHANGELOG.rst
 5@@ -1,6 +1,10 @@
 6 Changelog
 7 =========
 8 
 9+1.9.0
10+-----
11+* Show message when deactivating virtual environments
12+
13 1.8.2
14 -----
15 * local variables will no longer sneak into shell environment variables (Thanks @rnc)
16diff --git a/autoswitch_virtualenv.plugin.zsh b/autoswitch_virtualenv.plugin.zsh
17index 1a339e909af1a4bac59ceb2ce1a256caa79d8153..0ed093723537ad3773acec15ccaf6d015e6d5760 100644
18--- a/autoswitch_virtualenv.plugin.zsh
19+++ b/autoswitch_virtualenv.plugin.zsh
20@@ -1,4 +1,4 @@
21-export AUTOSWITCH_VERSION='1.8.2'
22+export AUTOSWITCH_VERSION='1.9.0'
23 
24 RED="\e[31m"
25 GREEN="\e[32m"
26@@ -37,6 +37,13 @@ function _python_version() {
27 }
28 
29 
30+function _autoswitch_message() {
31+    if [ -z "$AUTOSWITCH_SILENT" ]; then
32+        printf "$@"
33+    fi
34+}
35+
36+
37 function _maybeworkon() {
38     local venv_dir="$1"
39     local venv_type="$2"
40@@ -56,14 +63,12 @@ function _maybeworkon() {
41             return
42         fi
43 
44-        if [ -z "$AUTOSWITCH_SILENT" ]; then
45-            local py_version="$(_python_version "$venv_dir/bin/python")"
46-            local message="${AUTOSWITCH_MESSAGE_FORMAT:-"$DEFAULT_MESSAGE_FORMAT"}"
47-            message="${message//\%venv_type/$venv_type}"
48-            message="${message//\%venv_name/$venv_name}"
49-            message="${message//\%py_version/$py_version}"
50-            printf "${message}\n"
51-        fi
52+        local py_version="$(_python_version "$venv_dir/bin/python")"
53+        local message="${AUTOSWITCH_MESSAGE_FORMAT:-"$DEFAULT_MESSAGE_FORMAT"}"
54+        message="${message//\%venv_type/$venv_type}"
55+        message="${message//\%venv_name/$venv_name}"
56+        message="${message//\%py_version/$py_version}"
57+        _autoswitch_message "${message}\n"
58 
59         # Much faster to source the activate file directly rather than use the `workon` command
60         source "$venv_dir/bin/activate"
61@@ -141,6 +146,7 @@ function _default_venv()
62     if [[ -n "$AUTOSWITCH_DEFAULTENV" ]]; then
63         _maybeworkon "$(_virtual_env_dir "$AUTOSWITCH_DEFAULTENV")" "virtualenv"
64     elif [[ -n "$VIRTUAL_ENV" ]]; then
65+        _autoswitch_message "Deactivating: ${BOLD}${PURPLE}%s${NORMAL}\n" "$(basename "$VIRTUAL_ENV")"
66         deactivate
67     fi
68 }
69diff --git a/tests/test_check_venv.zunit b/tests/test_check_venv.zunit
70index 41e188269374597d2ef6fb1b4dd2a4e89e30a7e7..586e64879953eae116dc75be798803d35ef2a3e7 100644
71--- a/tests/test_check_venv.zunit
72+++ b/tests/test_check_venv.zunit
73@@ -162,13 +162,12 @@
74     VIRTUAL_ENV="foo"
75     unset AUTOSWITCH_DEFAULTENV
76     function deactivate {
77-        echo "deactivating"
78     }
79 
80     run check_venv
81 
82     assert $status equals 0
83-    assert "$output" same_as "deactivating"
84+    assert "$output" same_as "Deactivating: \e[1m\e[35mfoo\e[0m"
85 }
86 
87