Blame view

node_modules/coa/lib/completion.sh 1.26 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  #!/usr/bin/env bash
  ###-begin-{{cmd}}-completion-###
  #
  # {{cmd}} command completion script
  #
  # Installation: {{cmd}} completion >> ~/.bashrc  (or ~/.zshrc)
  # Or, maybe: {{cmd}} completion > /usr/local/etc/bash_completion.d/{{cmd}}
  #
  
  COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
  COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
  export COMP_WORDBREAKS
  
  if complete &>/dev/null; then
    _{{cmd}}_completion () {
      local si="$IFS"
      IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
                             COMP_LINE="$COMP_LINE" \
                             COMP_POINT="$COMP_POINT" \
                             {{cmd}} completion -- "${COMP_WORDS[@]}" \
                             2>/dev/null)) || return $?
      IFS="$si"
    }
    complete -F _{{cmd}}_completion {{cmd}}
  elif compctl &>/dev/null; then
    _{{cmd}}_completion () {
      local cword line point words si
      read -Ac words
      read -cn cword
      let cword-=1
      read -l line
      read -ln point
      si="$IFS"
      IFS=$'\n' reply=($(COMP_CWORD="$cword" \
                         COMP_LINE="$line" \
                         COMP_POINT="$point" \
                         {{cmd}} completion -- "${words[@]}" \
                         2>/dev/null)) || return $?
      IFS="$si"
    }
    compctl -K _{{cmd}}_completion {{cmd}}
  fi
  ###-end-{{cmd}}-completion-###