ohmyzsh/plugins/work/work.plugin.zsh
Pavel Puchkin c3ac1174c2 WORK plugin added
* before definition of zsh plugins set WORKPLUGIN_DIRS variable with
  list of your "work" directories relative to your $HOME, such as
  WORKPLUGIN_DIRS=('work' 'src')
* now you can use work command in your zshell, which will change CWD to
  first occurrence WORKPLUGIN_DIRS sub folders
* directories competition is supported
* also, you can define WORKPLUGIN_CALLBACK function, which will be
  called after directory change. In my case, I use it to call
  virtualenvwrapper's `workon` function
2012-02-06 10:49:43 +11:00

27 lines
569 B
Bash

typeset -A _WORKPLUGIN_DIRS_FULLPATH
for dir in $WORKPLUGIN_DIRS; do
_WORKPLUGIN_DIRS_FULLPATH[$dir]="$HOME/$dir"
done
work() {
local dir
for dir in $_WORKPLUGIN_DIRS_FULLPATH; do
if [[ -d "$dir/$1" ]]; then
builtin cd "$dir/$1"
break
fi
done
if [[ $(type -w "WORKPLUGIN_CALLBACK") == "WORKPLUGIN_CALLBACK: function" ]]; then
WORKPLUGIN_CALLBACK "$1"
fi
}
_work_comp() {
local dir
for dir in $_WORKPLUGIN_DIRS_FULLPATH; do
compadd $(ls $dir)
done
}
compdef _work_comp work