diff --git a/virtualenv.py b/virtualenv.py index 17a90dc6e..ceffd218e 100755 --- a/virtualenv.py +++ b/virtualenv.py @@ -2229,40 +2229,46 @@ def convert(s): ##file activate.sh ACTIVATE_SH = convert(""" -eJytVVFvokAQfudXTLEPtTlLeo9tvMSmJpq02hSvl7u2wRUG2QR2DSxSe7n/frOACEVNLlceRHa+ -nfl25pvZDswCnoDPQ4QoTRQsENIEPci4CsBMZBq7CAsuLOYqvmYKTTj3YxnBgiXBudGBjUzBZUJI -BXEqgCvweIyuCjeG4eF2F5x14bcB9KQiQQWrjSddI1/oQIx6SYYeoFjzWIoIhYI1izlbhJjkKO7D -M/QEmKfO9O7WeRo/zr4P7pyHwWxkwitcgwpQ5Ej96OX+PmiFwLeVjFUOrNYKaq1Nud3nR2n8nI2m -k9H0friPTGVsUdptaxGrTEfpNVFEskxpXtUkkCkl1UNF9cgLBkx48J4EXyALuBtAwNYIjF5kcmUU -abMKmMq1ULoiRbgsDEkTSsKSGFCJ6Z8vY/2xYiSacmtyAfCDdCNTVZoVF8vSTQOoEwSnOrngBkws -MYGMBMg8/bMBLSYKS7pYEXP0PqT+ZmBT0Xuy+Pplj5yn4aM9nk72JD8/Wi+Gr98sD9eWSMOwkapD -BbUv91XSvmyVkICt2tmXR4tWmrcUCsjWOpw87YidEC8i0gdTSOFhouJUNxR+4NYBG0MftoCTD9F7 -2rTtxG3oPwY1b2HncYwhrlmj6Wq924xtGDWqfdNxap+OYxplEurnMVo9RWks+rH8qKEtx7kZT5zJ -4H7oOFclrN6uFe+d+nW2aIUsSgs/42EIPuOhXq+jEo3S6tX6w2ilNkDnIpHCWdEQhFgwj9pkk7FN -l/y5eQvRSIQ5+TrL05lewxWpt/Lbhes5cJF3mLET1MGhcKCF+40tNWnUulxrpojwDo2sObdje3Bz -N3QeHqf3D7OjEXMVV8LN3ZlvuzoWHqiUcNKHtwNd0IbvPGKYYM31nPKCgkUILw3KL+Y8l7aO1ArS -Ad37nIU0fCj5NE5gQCuC5sOSu+UdI2NeXg/lFkQIlFpdWVaWZRfvqGiirC9o6liJ9FXGYrSY9mI1 -D/Ncozgn13vJvsznr7DnkJWXsyMH7e42ljdJ+aqNDF1bFnKWFLdj31xtaJYK6EXFgqmV/ymD/ROG -+n8O9H8f5vsGOWXsL1+1k3g= +eJytVm1v4jgQ/p5fMU0rLVQbcr2PrTiJtpxabQurwvZ0V3rBJKaxLtjZ2IHSbf/7jZ0QEhKQTrf5 +AIlnPJ6XZ+bxMYxDJmHOIgqLVCqYUUglDWDFVAi2FGniU5gx7hJfsSVR1IbTeSIWMCMyPLWOYS1S +8AnnQkGScmAKApZQX0Vry+pdjW8fe+O+97U3vvF+793dXfauvnTtE8+2rIBuTEKrDT8swCflkiqI +14HwLbNwDAnVSyIKgPIlSwRfUK5gSRJGZhGVRovN4QkcDmh4eHftPd4+jL/17sypNjzDBaiQcqOp +H73cbVItNOhrLBJlFIu1zLXaJiOfs4Nu/Dm+GQ5uhvf9JmcKYc2l7baaY4XooHtVLXQyT6kpuQxF +ikkNqMJimWoC4QG8yfAzrELmhxCSJQWCfyjyxWKhxSokygAlN4Vw8UkUIWCUgBf0AOuPb3OR6I+Y +IKLyrbID8AeCSqQqFyvGX3IzFUWdIDjRyQU/JPyFSlghOkmgf9agkYbHIi5i9JwGO6m/7I2w6I7I +vv4a3XiP/YfR7XDQkHwTmpPAr7+5AV26PI2iSqr2FXR01lTJ0VmthKhYq93o7GDRcvHGhUxlI+0P +HreOHaFf6EgXbC54QKVKUt1QdMe3YxjRaA4bhaOd0x0t2nTi5ugPCzs7k7MkoRFdkkrTlXq3erbe +R5Sii9jgQKMrWTBOyxEA41i9SPhEaWuwImsrD8h5w5h+6BJ6o+G3h6v+ufOB4VSi0VA1r5Xp0q3u ++7AtGlWMXh80Guw1en3IaAleDUbf9tj8pWbny64deH8viTsy7CxpIpng57VT/tEY1h1i+hWTjvMb +sMOVSNafTU+nnEqfxBRkTHzsphnFBqTwPRVFC+662MoN6O5wIt0D7xBSEoBzhm+aIBwKn6T799NE +wfPppDXpTN4ztpi04dR1L6Q7mYAL7sundhEu2sXqUU4WFN+b2cFuI6QR0xuAYezViGsVarZjiiVp +0xbb0t2FRadzkkYGqIhip4zJmKjQKmG2a3te6dNDAqsUsHJCDQoVQyctP9CZQJrME1Hd/WG33U7H +voB4FbSNq1kjVpSa1orQrXzUlKeGVWMu9CRjvfyjpO163uXtwBv07vued56rlUmxmA5bjtEzCVdQ +ojS9rFgUwZywSK+XtaTW0inXU17PiTXg9EAcQiujHdSYIdAIX+NgaKM93xCVRvUUbbXM0Eov4Bw5 +orDbhoupnitmOGzH9l7q3UOU3cqW0gAucanGTnaCrnwZFNe3o97lHRbjYXj/dXzwRMMVBT1kzfG6 +hVhmAVEGR1143cM1dfWtxQL6melp0XaTissTe2oIRJ9UO+QYNMMyEiHFY/JxZkAPVziy8Avz82ue +SFh+Ccu3UBw+SsXnrrtarTpvVCFvLzvI7a4Uc7UiCXWJtuJWg3kquTjdtMaus5Pp9BkagiystA4E +2t5uzO9r+V+JmHVtScSIzO6gXTte442Fg7PIFmyN/J9yffoJV6f/eW3671empusSZuxfNrOVBA== """) ##file activate.fish ACTIVATE_FISH = convert(""" -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 +Gwdeq2n1G2wM2ww= """) ##file activate.csh @@ -2282,17 +2288,18 @@ def convert(s): ##file activate.bat ACTIVATE_BAT = convert(""" -eJx9UdEKgjAUfW6wfxjiIH+hEDKUFHSKLCMI7kNOEkIf9P9pTJ3OLJ/03HPPPed4Es9XS9qqwqgT -PbGKKOdXL4aAFS7A4gvAwgijuiKlqOpGlATS2NeMLE+TjJM9RkQ+SmqAXLrBo1LLIeLdiWlD6jZt -r7VNubWkndkXaxg5GO3UaOOKS6drO3luDDiO5my3iA0YAKGzPRV1ack8cOdhysI0CYzIPzjSiH5X -0QcvC8Lfaj0emsVKYF2rhL5L3fCkVjV76kShi59NHwDniAHzkgDgqBcwOgTMx+gDQQqXCw== +eJx9UcEKgkAUPLew//CQFvISnQshS0khVwkrguAd2pWCSMG69u1ta25alqdl3ryZeeNUHo455FlG +CSXFrTwKYHdRjIZDSkp5BWsTrtK1u0Sfbxw295ilaHkhnvRTBkJmp4sUgPHSw5qarOIoSWFACahP +q1SQwzp4T0Ub5LmU9YbSveRXo92W+5TsJ/2FVY1sSnp61OHisNqtp+xet71GaLjbkFcYIrB3PH1q +M1LbYJcGMQ/iyG+d/IOjgpi3Pr3K0iD8rdZNg3axCvisVUHfpXZk0quGXXei0cZfZ3vEWciRu5GP +ODELlIx97lHyADgDmTA= """) ##file deactivate.bat DEACTIVATE_BAT = convert(""" -eJxzSE3OyFfIT0vj4spMU0hJTcvMS01RiPf3cYkP8wwKCXX0iQ8I8vcNCFHQ4FIAguLUEgUliIit -KhZlqkpcnCA1WKRsuTTxWBIZ4uHv5+Hv64piEVwU3TK4BNBCmHIcKvDb6xjigWIjkI9uF1AIu7dA -akGGW7n6uXABALCXXUI= +eJxzSE3OyFfIT0vj4ipOLVEI8wwKCXX0iXf1C7Pl4spMU0hJTcvMS01RiPf3cYmHyQYE+fsGhCho +cCkAAUibEkTEVhWLMlUlLk6QGixStlyaeCyJDPHw9/Pw93VFsQguim4ZXAJoIUw5DhX47XUM8UCx +EchHtwsohN1bILUgw61c/Vy4AJYPYm4= """) ##file activate.ps1 diff --git a/virtualenv_embedded/activate.bat b/virtualenv_embedded/activate.bat index 4c2003ef5..d3c24a0d2 100644 --- a/virtualenv_embedded/activate.bat +++ b/virtualenv_embedded/activate.bat @@ -1,5 +1,8 @@ @echo off -set "VIRTUAL_ENV=__VIRTUAL_ENV__" + +pushd %~dp0.. +set "VIRTUAL_ENV=%CD%" +popd if defined _OLD_VIRTUAL_PROMPT ( set "PROMPT=%_OLD_VIRTUAL_PROMPT%" diff --git a/virtualenv_embedded/activate.fish b/virtualenv_embedded/activate.fish index be7a2a6bf..31e47e167 100644 --- a/virtualenv_embedded/activate.fish +++ b/virtualenv_embedded/activate.fish @@ -32,7 +32,7 @@ end # unset irrelevant variables deactivate nondestructive -set -gx VIRTUAL_ENV "__VIRTUAL_ENV__" +set -gx VIRTUAL_ENV (cd (dirname (status -f)); cd ..; pwd) set -gx _OLD_VIRTUAL_PATH $PATH set -gx PATH "$VIRTUAL_ENV/__BIN_NAME__" $PATH diff --git a/virtualenv_embedded/activate.sh b/virtualenv_embedded/activate.sh index e50c78256..68890adae 100644 --- a/virtualenv_embedded/activate.sh +++ b/virtualenv_embedded/activate.sh @@ -1,6 +1,8 @@ # This file must be used with "source bin/activate" *from bash* # you cannot run it directly +ACTIVATE_PATH_FALLBACK="$_" + deactivate () { unset pydoc @@ -39,7 +41,32 @@ deactivate () { # unset irrelevant variables deactivate nondestructive +# attempt to determine VIRTUAL_ENV in relocatable way +if [ ! -z "${BASH_SOURCE:-}" ]; then + # bash + ACTIVATE_PATH="${BASH_SOURCE}" +elif [ ! -z "${DASH_SOURCE:-}" ]; then + # dash + ACTIVATE_PATH="${DASH_SOURCE}" +elif [ ! -z "${ZSH_VERSION:-}" ]; then + # zsh + ACTIVATE_PATH="$0" +elif [ ! -z "${KSH_VERSION:-}" ] || [ ! -z "${.sh.version:}" ]; then + # ksh - we have to use history, and unescape spaces before quoting + ACTIVATE_PATH="$(history -r -l -n | head -1 | sed -e 's/^[\t ]*\(\.\|source\) *//;s/\\ / /g')" +elif [ "$(basename "$ACTIVATE_PATH_FALLBACK")" == "activate.sh" ]; then + ACTIVATE_PATH="${ACTIVATE_PATH_FALLBACK}" +else + ACTIVATE_PATH="" +fi + +# default to non-relocatable path VIRTUAL_ENV="__VIRTUAL_ENV__" +if [ ! -z "${ACTIVATE_PATH:-}" ]; then + VIRTUAL_ENV="$(cd "$(dirname "${ACTIVATE_PATH}")/.."; pwd)" +fi +unset ACTIVATE_PATH +unset ACTIVATE_PATH_FALLBACK export VIRTUAL_ENV _OLD_VIRTUAL_PATH="$PATH"