mix-fast.plugin.zsh
622 bytes
1_mix_refresh () {
2 if [ -f .mix_tasks ]; then
3 rm .mix_tasks
4 fi
5 echo "Generating .mix_tasks..." > /dev/stderr
6 _mix_generate
7 cat .mix_tasks
8}
9
10_mix_does_task_list_need_generating () {
11 [ ! -f .mix_tasks ];
12}
13
14_mix_generate () {
15 mix help | grep '^mix [^ ]' | sed -E "s/mix ([^ ]*) *# (.*)/\1:\2/" > .mix_tasks
16}
17
18_mix () {
19 if [ -f mix.exs ]; then
20 if _mix_does_task_list_need_generating; then
21 echo "\nGenerating .mix_tasks..." > /dev/stderr
22 _mix_generate
23 fi
24 local tasks=(${(f)"$(cat .mix_tasks)"})
25 _describe 'tasks' tasks
26 fi
27}
28
29compdef _mix mix
30alias mix_refresh='_mix_refresh'