Created
September 20, 2022 09:49
-
-
Save vsajip/013e8d112023983764168bfc30874d53 to your computer and use it in GitHub Desktop.
Eryk Sun's activate/deactivate batch scripts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@setlocal EnableExtensions EnableDelayedExpansion | |
@REM Set VIRTUAL_ENV and VIRTUAL_ENV_PROMPT to the UTF-8 encoded parameters. | |
@REM CMD decodes line by line, so switch to UTF-8 (65001) temporarily. | |
@for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do @( | |
set "_OLD_CODEPAGE=%%a" | |
) | |
@if defined _OLD_CODEPAGE ( | |
"%SystemRoot%\System32\chcp.com" 65001 > nul | |
) | |
@set "VIRTUAL_ENV=__VENV_DIR__" | |
@set "VIRTUAL_ENV_PROMPT=__VENV_PROMPT__" | |
@if defined _OLD_CODEPAGE ( | |
"%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul | |
) | |
@set "EXPORTS=set VIRTUAL_ENV" | |
@set "EXPORTS=!EXPORTS!^&set VIRTUAL_ENV_PROMPT" | |
@if not defined _OLD_VIRTUAL_PYTHONHOME ( | |
if defined PYTHONHOME ( | |
set "_OLD_VIRTUAL_PYTHONHOME=!PYTHONHOME!" | |
set "EXPORTS=!EXPORTS!^&set _OLD_VIRTUAL_PYTHONHOME" | |
) | |
) | |
@set "EXPORTS=!EXPORTS!^&echo PYTHONHOME^=" | |
@if defined _OLD_VIRTUAL_PROMPT ( | |
set "PROMPT=!VIRTUAL_ENV_PROMPT!!_OLD_VIRTUAL_PROMPT!" | |
) else if defined PROMPT ( | |
set "_OLD_VIRTUAL_PROMPT=!PROMPT!" | |
set "PROMPT=!VIRTUAL_ENV_PROMPT!!PROMPT!" | |
set "EXPORTS=!EXPORTS!^&set _OLD_VIRTUAL_PROMPT" | |
) else ( | |
set "PROMPT=!VIRTUAL_ENV_PROMPT!$P$G" | |
) | |
@set "EXPORTS=!EXPORTS!^&set PROMPT" | |
@if defined _OLD_VIRTUAL_PATH ( | |
set "PATH=!VIRTUAL_ENV!\Scripts;!_OLD_VIRTUAL_PATH!" | |
) else if defined PATH ( | |
set "_OLD_VIRTUAL_PATH=!PATH!" | |
set "PATH=!VIRTUAL_ENV!\Scripts;!PATH!" | |
set "EXPORTS=!EXPORTS!^&set _OLD_VIRTUAL_PATH" | |
) else ( | |
set "PATH=!VIRTUAL_ENV!\Scripts;%SystemRoot%;%SystemRoot%\System32" | |
) | |
@set "EXPORTS=!EXPORTS!^&set PATH" | |
@REM Evaluate EXPORTS in the global environment. | |
@set "DO_ENDLOCAL=1" | |
@for /f "delims=" %%a in ('!EXPORTS!') do @( | |
setlocal EnableExtensions | |
if defined DO_ENDLOCAL ( | |
endlocal | |
) | |
endlocal | |
set "%%a" | |
) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@setlocal EnableExtensions EnableDelayedExpansion | |
@set "EXPORTS=echo VIRTUAL_ENV^=" | |
@set "EXPORTS=!EXPORTS!^&echo VIRTUAL_ENV_PROMPT^=" | |
@if defined _OLD_VIRTUAL_PYTHONHOME ( | |
set "PYTHONHOME=!_OLD_VIRTUAL_PYTHONHOME!" | |
set "EXPORTS=!EXPORTS!^&set PYTHONHOME" | |
set "EXPORTS=!EXPORTS!^&echo _OLD_VIRTUAL_PYTHONHOME^=" | |
) else ( | |
set "EXPORTS=!EXPORTS!^&echo PYTHONHOME^=" | |
) | |
@if defined _OLD_VIRTUAL_PROMPT ( | |
set "PROMPT=!_OLD_VIRTUAL_PROMPT!" | |
set "EXPORTS=!EXPORTS!^&set PROMPT" | |
set "EXPORTS=!EXPORTS!^&echo _OLD_VIRTUAL_PROMPT^=" | |
) else ( | |
set "EXPORTS=!EXPORTS!^&echo PROMPT^=" | |
) | |
@if defined _OLD_VIRTUAL_PATH ( | |
set "PATH=!_OLD_VIRTUAL_PATH!" | |
set "EXPORTS=!EXPORTS!^&set PATH" | |
set "EXPORTS=!EXPORTS!^&echo _OLD_VIRTUAL_PATH^=" | |
) else ( | |
set "EXPORTS=!EXPORTS!^&echo PATH^=" | |
) | |
@REM Evaluate EXPORTS in the global environment. | |
@set "DO_ENDLOCAL=1" | |
@for /f "delims=" %%a in ('!EXPORTS!') do @( | |
setlocal EnableExtensions | |
if defined DO_ENDLOCAL ( | |
endlocal | |
) | |
endlocal | |
set "%%a" | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment