python
This commit is contained in:
36
apps.d/python.zsh
Normal file
36
apps.d/python.zsh
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# shellcheck shell=bash
|
||||||
|
# vim: ft=sh
|
||||||
|
|
||||||
|
vpy()
|
||||||
|
{
|
||||||
|
(
|
||||||
|
# Проверка минимального количества аргументов
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
echo "Использование: vpy <venv_name> <command> [args...]"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local venv_name="$1"
|
||||||
|
local venv_path="$HOME/python/$venv_name/bin/activate"
|
||||||
|
|
||||||
|
# Проверка существования venv
|
||||||
|
if [[ ! -r "$venv_path" ]]; then
|
||||||
|
echo "Ошибка: Виртуальное окружение '$venv_name' не найдено."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Активация venv
|
||||||
|
source "$venv_path"
|
||||||
|
shift # Остаются только команда и её аргументы
|
||||||
|
|
||||||
|
# Проверка существования команды в активированном окружении
|
||||||
|
if ! command -v "$1" > /dev/null 2>&1; then
|
||||||
|
echo "Ошибка: Команда '$1' не найдена в PATH (venv: $venv_name)."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
exec "$@"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user