32 lines
902 B
Fish
32 lines
902 B
Fish
|
function venv -d "Manipulate Python virtual environments (venv)"
|
||
|
|
||
|
if test (count $argv) -eq 0
|
||
|
echo "usage: venv [list | deactivate | activate VENV]"
|
||
|
return 1
|
||
|
end
|
||
|
|
||
|
if test $argv[1] = "list" -o $argv[1] = "l"
|
||
|
ls -1 --color=no $WORKON_HOME
|
||
|
else if test $argv[1] = "deactivate" -o $argv[1] = "d"
|
||
|
type -q deactivate; and deactivate
|
||
|
else if test $argv[1] = "activate" -o $argv[1] = "a"
|
||
|
source $WORKON_HOME/{$argv[2]}/bin/activate.fish
|
||
|
else
|
||
|
return 1
|
||
|
end
|
||
|
return 0
|
||
|
end
|
||
|
|
||
|
# see http://fishshell.com/docs/current/completions.html
|
||
|
|
||
|
# disable file completions
|
||
|
complete -c venv -f
|
||
|
|
||
|
# subcommand completion
|
||
|
set -l commands list deactivate activate
|
||
|
complete -c venv -n "not __fish_seen_subcommand_from $commands" -a "$commands"
|
||
|
|
||
|
# activate completion
|
||
|
complete -c venv -n "__fish_seen_subcommand_from activate" \
|
||
|
-a "(ls $WORKON_HOME)"
|