mirror of
https://git.decapod.one/brethil/dotfiles
synced 2024-11-21 19:11:30 +01:00
zsh: python: add -f flag to mkvenv
- improve mkvenv with getopts option parsing - add -f flag to force recreation of venv Usage: ```bash mkvenv [-sf] [venv_name] ```
This commit is contained in:
parent
aaea49ecf8
commit
1537ddcc64
|
@ -1,25 +1,44 @@
|
||||||
mkvenv(){
|
mkvenv(){
|
||||||
local source_venv
|
local source_venv force_create venv_name
|
||||||
if [[ $1 == "-s" ]]; then
|
while getopts "sf" opt; do
|
||||||
source_venv=y
|
case $opt in
|
||||||
|
s|source) source_venv=y ;;
|
||||||
|
f|force) force_create=y ;;
|
||||||
|
*) echo "Unknown option: $opt"; return 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "force=$force_create"
|
||||||
|
return
|
||||||
|
shift $(($OPTIND-1))
|
||||||
|
if [[ -n $1 ]]; then
|
||||||
|
venv_name=$1
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
# any arguments are passed on to the `venv` module as flags/arguments
|
# any other arguments are passed on to the `venv` module as flags/arguments
|
||||||
if [[ -e .venv ]]; then
|
echo ${venv_name}
|
||||||
echo "$(color $RED Error:) $(color $BOLD .venv) already exists." >&2
|
if [[ -e ${venv_name} ]]; then
|
||||||
|
if [[ -n ${force_create} ]]; then
|
||||||
|
if [[ -n $VIRTUAL_ENV ]]; then # deactivate venv if enabled
|
||||||
|
deactivate && info "Deactivated existing virtualenv" || red "Could not run deactivate";
|
||||||
|
fi
|
||||||
|
rm -rf ${venv_name} && info "Deleted existing virtualenv"
|
||||||
|
else
|
||||||
|
echo "$(color $RED Error:) $(color $BOLD .venv) already exists. Run with -f to recreate it." >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo -n "Creating venv..." && python -m virtualenv $@ .venv || echo -e "Failed to create virtualenv. Is virtualenv installed? Try:\n $ pip install virtualenv"
|
info "Creating virtualenv ${venv_name}... " && python -m virtualenv $@ ${venv_name}|| echo -e "Failed to create virtualenv. Is virtualenv installed? Try:\n $ pip install virtualenv"
|
||||||
if [[ -z ${source_venv} ]]; then
|
if [[ -z ${source_venv} ]]; then
|
||||||
echo -n " done. Enable? [Y/n]"
|
echo -n " done. Enable? [Y/n] "
|
||||||
read source_venv
|
read source_venv
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $source_venv != "n" ]]; then
|
if [[ $source_venv != "n" ]]; then
|
||||||
source .venv/bin/activate && echo -e " → $(color $BOLD Enabled!) 🐍 $(color $BOLD$PURPLE $(python --version | cut -d " " -f2 )) ($(color $BOLD$GREEN $(pip --version | cut -d " " -f -2)))"
|
source ${venv_name}/bin/activate && echo -e " → $(color $BOLD Enabled!) 🐍 $(color $BOLD$PURPLE $(python --version | cut -d " " -f2 )) ($(color $BOLD$GREEN $(pip --version | cut -d " " -f -2)))"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user