contrib/completion/_sup.bash (3317B) - raw
1 # Sup Bash completion
2 #
3 # * Complete options for all Sup commands.
4 # * Disable completion for next option when current option takes an argument.
5 # * Complete sources, directories, and files, where applicable.
6
7 _sup_cmds() {
8 local cur prev opts sources
9 COMPREPLY=()
10 cur="${COMP_WORDS[COMP_CWORD]}"
11 prev="${COMP_WORDS[COMP_CWORD-1]}"
12 sources="$(sed -n '/uri:/ {s/.*uri:\s*//p}' $HOME/.sup/sources.yaml)"
13
14 case "${1##/*}" in
15 sup-add)
16 opts="--archive -a --unusual -u --sync-back --no-sync-back -s
17 --labels -l --force-new -f --force-account -o --version -v
18 --help -h mbox: maildir:"
19
20 case $prev in
21 --labels|-l|--force-account|-o)
22 COMPREPLY=()
23 return 0
24 ;;
25 esac
26 ;;
27 sup-config|sup-dump)
28 opts="--version -v --help -h"
29 ;;
30 sup-import-dump)
31 opts="--verbose -v --ignore-missing -i --warn-missing -w
32 --abort-missing -a --atomic -t --dry-run -n --version --help
33 -h"
34 ;;
35 sup)
36 opts="--list-hooks -l --no-threads -n --no-initial-poll -o --search
37 -s --compose -c --subject -j --version -v --help -h"
38
39 case $prev in
40 --search|-s|--compose|-c|--subject|-j)
41 COMPREPLY=()
42 return 0
43 ;;
44 esac
45 ;;
46 sup-recover-sources)
47 opts="--unusual --archive --scan-num --help -h $sources"
48
49 case $prev in
50 --scan-num)
51 COMPREPLY=()
52 return 0
53 ;;
54 esac
55 ;;
56 sup-sync)
57 opts="--asis --restore --discard --archive -x --read -r
58 --extra-labels --verbose -v --optimize -o --all-sources
59 --dry-run -n --version --help -h ${sources}"
60
61
62 case $prev in
63 --restore|--extra-labels)
64 COMPREPLY=()
65 return 0
66 ;;
67 esac
68 ;;
69 sup-sync-back-maildir)
70 maildir_sources="$(echo $sources | tr ' ' '\n' | grep maildir)"
71 opts="--no-confirm -n --no-merge -m --list-sources -l
72 --unusual-sources-too -u --version -v --help -h
73 $maildir_sources"
74 ;;
75 sup-tweak-labels)
76 opts="--add -a --remove -r --query -q --verbose -v --very-verbose
77 -e --all-sources --dry-run -n --no-sync-back -o --version
78 --help -h $sources"
79
80 case $prev in
81 --add|-a|--remove|-r|--query|-q)
82 COMPREPLY=()
83 return 0
84 ;;
85 esac
86 ;;
87 esac
88
89 COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
90 return 0
91 }
92
93 complete -F _sup_cmds sup \
94 sup-add \
95 sup-config \
96 sup-dump \
97 sup-recover-sources \
98 sup-sync \
99 sup-sync-back-maildir \
100 sup-tweak-labels
101
102 complete -F _sup_cmds -o filenames -o plusdirs sup-import-dump