source: trunk/klask.bash_completion @ 350

Last change on this file since 350 was 307, checked in by g7moreau, 7 years ago
  • Better doc for exportsw option and better dynamic completion
File size: 1.2 KB
Line 
1# bash completion for klask
2
3_klask() {
4   local cur prev
5
6   COMPREPLY=()
7   #_get_comp_words_by_ref cur prev
8   cur="${COMP_WORDS[COMP_CWORD]}"
9   prev="${COMP_WORDS[COMP_CWORD-1]}"
10
11   case $prev in
12      -f|--format)
13         COMPREPLY=($(compgen -W "txt html dot" -- "$cur"))
14         return 0
15         ;;
16      -k|--kind)
17         COMPREPLY=($(compgen -W "host mac" -- "$cur"))
18         return 0
19         ;;
20      -i|--vlan)
21         COMPREPLY=($(compgen -W "$(grep vlan-id: /etc/klask/klask.conf|awk '{print $2}'|xargs echo -n)" -- "$cur"))
22         return 0
23         ;;
24      -s|--shift)
25         COMPREPLY=($(compgen -W "1 2 3" -- "$cur"))
26         return 0
27         ;;
28   esac
29
30   if [[ "$cur" == '-*' || $COMP_CWORD -gt 1 ]]
31   then
32      #COMPREPLY=($(compgen -W '-v --verbose -k --kind -f --format -d --day -i --vlan -m --modulo -s --shift' -- "$cur"))
33      COMPREPLY=($(compgen -W "$(klask  help|grep "^ klask ${COMP_WORDS[1]}" | sed -e 's/[\[]/\n/g;'|grep -- '^-'|cut -f 1 -d ']'|cut -f 1 -d ' '|sed -e 's/|/ /g;'|xargs echo -n)" -- "$cur"))
34   else
35      COMPREPLY=($(compgen -W "$($(which klask || echo /usr/sbin/klask) help|grep '^ klask'|awk '{print $2}'|xargs echo -n)" -- "$cur"))
36   fi
37
38   } && complete -F _klask klask
Note: See TracBrowser for help on using the repository browser.