Parent directory

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'