Fish: vv for Python venvs
vv searches for and activates the nearest directory named "venv" in the current directory upward (stopping if it finds a .git).
This commit is contained in:
@@ -1,5 +1,29 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
function vv
|
||||
source venv/bin/activate.fish
|
||||
pushd . &> /dev/null
|
||||
function find_root
|
||||
set -l dir $PWD
|
||||
|
||||
if test -d $dir/venv
|
||||
echo $dir
|
||||
return 0
|
||||
end
|
||||
|
||||
if test -d .git -o "$dir" = "/"
|
||||
return 1
|
||||
end
|
||||
|
||||
cd ..
|
||||
find_root
|
||||
end
|
||||
|
||||
if not find_root &> /dev/null
|
||||
echo "Couldn't find venv"
|
||||
popd &> /dev/null
|
||||
return 1
|
||||
end
|
||||
|
||||
source (find_root)/venv/bin/activate.fish
|
||||
popd &> /dev/null
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user