diff --git a/apps.d/python.zsh b/apps.d/python.zsh new file mode 100644 index 0000000..81b4252 --- /dev/null +++ b/apps.d/python.zsh @@ -0,0 +1,36 @@ +# shellcheck shell=bash +# vim: ft=sh + +vpy() +{ + ( + # Проверка минимального количества аргументов + if [ $# -lt 2 ]; then + echo "Использование: vpy [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 "$@" + ) +} +