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