37 lines
978 B
Bash
37 lines
978 B
Bash
# 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 "$@"
|
|
)
|
|
}
|
|
|