diff --git a/functions/dotenv.fish b/functions/dotenv.fish new file mode 100644 index 0000000..b4b77c2 --- /dev/null +++ b/functions/dotenv.fish @@ -0,0 +1,12 @@ +function dotenv + + # check if a .env exists + if test ! -e .env + echo ".env not found." > /dev/stderr + return 1 + end + + while read -d "=" name value + set -x -g $name $value + end < .env +end \ No newline at end of file diff --git a/functions/venv.fish b/functions/venv.fish new file mode 100644 index 0000000..65be541 --- /dev/null +++ b/functions/venv.fish @@ -0,0 +1,31 @@ +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)"