43 lines
2 KiB
Batchfile
Executable file
43 lines
2 KiB
Batchfile
Executable file
@echo off
|
|
|
|
REM Save the first two arguments.
|
|
set "pulumi_policy_python_engine_address=%1"
|
|
set "pulumi_policy_python_program=%2"
|
|
|
|
REM Parse the -virtualenv command line argument.
|
|
set pulumi_runtime_python_virtualenv=
|
|
:parse
|
|
if "%~1"=="" goto endparse
|
|
if "%~1"=="-virtualenv" (
|
|
REM Get the value as a fully-qualified path.
|
|
set "pulumi_runtime_python_virtualenv=%~f2"
|
|
goto endparse
|
|
)
|
|
shift /1
|
|
goto parse
|
|
:endparse
|
|
|
|
if defined pulumi_runtime_python_virtualenv (
|
|
REM If python exists in the virtual environment, set PATH and run it.
|
|
if exist "%pulumi_runtime_python_virtualenv%\Scripts\python.exe" (
|
|
REM Update PATH and unset PYTHONHOME.
|
|
set "PATH=%pulumi_runtime_python_virtualenv%\Scripts;%PATH%"
|
|
set PYTHONHOME=
|
|
|
|
REM Run python from the virtual environment.
|
|
"%pulumi_runtime_python_virtualenv%\Scripts\python.exe" -u -m pulumi.policy %pulumi_policy_python_engine_address% %pulumi_policy_python_program%
|
|
exit /B
|
|
) else (
|
|
echo The 'virtualenv' option in PulumiPolicy.yaml is set to %pulumi_runtime_python_virtualenv%, but %pulumi_runtime_python_virtualenv% doesn't appear to be a virtual environment. 1>&2
|
|
echo Run the following commands to create the virtual environment and install dependencies into it: 1>&2
|
|
echo 1. python -m venv %pulumi_runtime_python_virtualenv% 1>&2
|
|
echo 2. %pulumi_runtime_python_virtualenv%\Scripts\python.exe -m pip install --upgrade pip setuptools wheel 1>&2
|
|
echo 3. %pulumi_runtime_python_virtualenv%\Scripts\python.exe -m pip install -r %cd%\requirements.txt 1>&2
|
|
echo For more information see: https://www.pulumi.com/docs/intro/languages/python/#virtual-environments 1>&2
|
|
exit 1
|
|
)
|
|
) else (
|
|
REM Otherwise, just run python. We use `python` instead of `python3` because Windows
|
|
REM Python installers install only `python.exe` by default.
|
|
@python -u -m pulumi.policy %pulumi_policy_python_engine_address% %pulumi_policy_python_program%
|
|
)
|