dotfiles/zsh/.local/share/oh-my-zsh/plugins/mix-fast/mix-fast.plugin.zsh

30 lines
622 B
Bash

_mix_refresh () {
if [ -f .mix_tasks ]; then
rm .mix_tasks
fi
echo "Generating .mix_tasks..." > /dev/stderr
_mix_generate
cat .mix_tasks
}
_mix_does_task_list_need_generating () {
[ ! -f .mix_tasks ];
}
_mix_generate () {
mix help | grep '^mix [^ ]' | sed -E "s/mix ([^ ]*) *# (.*)/\1:\2/" > .mix_tasks
}
_mix () {
if [ -f mix.exs ]; then
if _mix_does_task_list_need_generating; then
echo "\nGenerating .mix_tasks..." > /dev/stderr
_mix_generate
fi
local tasks=(${(f)"$(cat .mix_tasks)"})
_describe 'tasks' tasks
fi
}
compdef _mix mix
alias mix_refresh='_mix_refresh'