72 lines
1.5 KiB
Bash
72 lines
1.5 KiB
Bash
VENV_FOLDER=".venv"
|
|
OPERATION=c
|
|
|
|
deactivate_() {
|
|
if [ ! -z "${VIRTUAL_ENV}" ]; then
|
|
deactivate
|
|
fi
|
|
}
|
|
|
|
create_or_activate() {
|
|
if [ -z "${VIRTUAL_ENV}" ]; then
|
|
if [ -d "${VENV_FOLDER}" ]; then
|
|
source ./${VENV_FOLDER}/bin/activate
|
|
else
|
|
python3 -m venv "${VENV_FOLDER}"
|
|
source ./${VENV_FOLDER}/bin/activate
|
|
fi
|
|
else
|
|
deactivate
|
|
fi
|
|
}
|
|
|
|
|
|
remove() {
|
|
deactivate_
|
|
if [ -d "${VENV_FOLDER}" ]; then
|
|
rm -r "${VENV_FOLDER}"
|
|
fi
|
|
}
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
'-c'|"--create")
|
|
OPERATION=c
|
|
;;
|
|
|
|
'-r'|"--remove")
|
|
OPERATION=r
|
|
;;
|
|
|
|
'-d'|"--deactivate")
|
|
deactivate_
|
|
return
|
|
;;
|
|
|
|
'-h'|"--help")
|
|
echo "venv [OPTION] [VENV_FOLDER]"
|
|
echo
|
|
echo "ARGUMENTS:"
|
|
echo "\t VENV_FOLDER \t\t Folder containing virtual environment"
|
|
echo
|
|
echo "OPTIONS:"
|
|
echo "\t -c, --create \t\t Create virtual environment"
|
|
echo "\t -d, --deactivate \t Exit virtual environment"
|
|
echo "\t -r, --remove \t\t Deactivate and remove virtual environment"
|
|
echo "\t -h, --help \t\t Print this message"
|
|
return
|
|
;;
|
|
|
|
*)
|
|
VENV_FOLDER="$1"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
case "${OPERATION}" in
|
|
c) create_or_activate;;
|
|
r) remove;;
|
|
esac
|
|
|
|
# vim: set ft=sh
|