Files
vim-lsp-settings-mirror/installer/pip_install.cmd
2023-12-23 22:50:55 +09:00

69 lines
2.0 KiB
Batchfile

@echo off
rem Usage
rem : pip_install [EXECUTABLE_NAME] [PYPI_NAME]
if "x%1" equ "x" goto :EOF
if "x%2" equ "x" goto :EOF
rem python(ver 3.x) or python3 check
echo :where python
where python 2>NUL && goto :python
:python_fail
echo :where python3
where python3 2>NUL && goto :python3
:python3_fail
goto :EOF
:python
rem python is 2 or 3 check(python3 version at python3 grammar)
rem Do a quick check as distutils has been removed in Python 3.12
call python -c "import sys; sys.exit(0 if (sys.version_info[0] >= 3) else 1)" 2>NUL
if errorlevel 1 goto :python_fail
set PYTHON=python
goto :create_venv
:python3
rem python3 always python 3.x :-)
rem python3 -c "import sys; from distutils.version import LooseVersion;sys.exit(0 if (LooseVersion(sys.version) > LooseVersion('3')) else 1)" 2>NUL
rem if errorlevel 1 goto :python3_fail
set PYTHON=python3
goto :create_venv
:create_venv
rem python support slash path split?
echo :call "%PYTHON%" -m venv ./venv
call "%PYTHON%" -m venv ./venv
if not errorlevel 1 goto :install
echo :call "%PYTHON%" -m venv .\venv
call "%PYTHON%" -m venv .\venv
goto :install
:install
rem python command path check (env var set just path&&... need)
where venv\bin\:python 2>NUL && set PYTHON=venv\bin\python&& goto :generate
where venv\Scripts\:python 2>NUL && set PYTHON=venv\Scripts\python&& goto :generate
where venv\bin\:python3 2>NUL && set PYTHON=venv\bin\python3&& goto :generate
where venv\Scripts\:python3 2>NUL && set PYTHON=venv\Scripts\python3&& goto :generate
goto :EOF
:generate
rem get absolute path of bin or Scripts directory
for /f %%V in ("%PYTHON%") do set BINPATH=%%~dpV
rem upgrade pip (windows: use `python -m pip`)
rem and install target package
echo :"%PYTHON%" -m pip install -U pip
"%PYTHON%" -m pip install -U pip
echo :"%PYTHON%" -m pip install %2
"%PYTHON%" -m pip install %2
rem exec cmd generate
echo :generate %1.cmd
echo @echo off ^
"%BINPATH%%1" %%* ^
> %1.cmd
type %1.cmd