mu: add mu-completion.bash
Was missing.
This commit is contained in:
296
mu/completion/mu-completion.bash
Normal file
296
mu/completion/mu-completion.bash
Normal file
@ -0,0 +1,296 @@
|
||||
# bash completion for mu
|
||||
#
|
||||
# Install by sourcing this file from your .bashrc, or by placing it, named 'mu',
|
||||
# in the bash-completion completions directory.
|
||||
|
||||
_mu_cmd_add() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_cfind() {
|
||||
case "$prev" in
|
||||
-o|--format) COMPREPLY=($(compgen -W "bbdb csv json mutt-ab mutt-alias org-contact plain wl" -- "$cur")); return;;
|
||||
--after) return;;
|
||||
-n|--maxnum) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -o --format -p --personal --after -n --maxnum --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_extract() {
|
||||
case "$prev" in
|
||||
--parts) return;;
|
||||
--target-dir) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
--matches) return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -r --auto-retrieve --decrypt -a --save-attachments --save-all --overwrite --play --parts --target-dir -u --uncooked --matches -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_fields() {
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_find() {
|
||||
case "$prev" in
|
||||
-o|--format) COMPREPLY=($(compgen -W "json json2 links plain sexp xml" -- "$cur")); return;;
|
||||
-n|--maxnum) return;;
|
||||
-f|--fields) return;;
|
||||
-s|--sortfield) COMPREPLY=($(compgen -W "a bcc c cc changed d date f flags from g h i k l labels language list m maildir message-id p path priority q r references s size subject t tags thread to u utc-offset v w x z" -- "$cur")); return;;
|
||||
-b|--bookmark) return;;
|
||||
--linksdir) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
--after) return;;
|
||||
--summary-len) return;;
|
||||
--exec) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -t --threads -u --skip-dups -r --include-related -a --analyze -o --format -n --maxnum -f --fields -s --sortfield -z --reverse -b --bookmark --clearlinks --linksdir --after --summary-len --exec --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_help() {
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_index() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --lazy-check --nocleanup --reindex --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_info() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_init() {
|
||||
case "$prev" in
|
||||
-m|--maildir) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
--personal-address|--my-address) return;;
|
||||
--ignored-address) return;;
|
||||
--max-message-size) return;;
|
||||
--batch-size) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -m --maildir --personal-address --my-address --ignored-address --max-message-size --batch-size --support-ngrams --reinit --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_update() {
|
||||
case "$prev" in
|
||||
--labels) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --labels -n --dry-run --muhome" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_clear() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -n --dry-run --muhome" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_list() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_restore_list() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_export() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels_import() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -n --dry-run --muhome" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_labels() {
|
||||
local i=$1 sub=
|
||||
while (( i < COMP_CWORD )); do
|
||||
case "${COMP_WORDS[i]}" in
|
||||
=|-*) ((i++));;
|
||||
*) sub="${COMP_WORDS[i]}"; ((i++)); break;;
|
||||
esac
|
||||
done
|
||||
case "$sub" in
|
||||
update) _mu_cmd_labels_update "$i"; return;;
|
||||
clear) _mu_cmd_labels_clear "$i"; return;;
|
||||
list) _mu_cmd_labels_list "$i"; return;;
|
||||
restore-list) _mu_cmd_labels_restore_list "$i"; return;;
|
||||
export) _mu_cmd_labels_export "$i"; return;;
|
||||
import) _mu_cmd_labels_import "$i"; return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -W "update clear list restore-list export import" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_mkdir() {
|
||||
case "$prev" in
|
||||
--mode) return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --mode -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -d -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_move() {
|
||||
case "$prev" in
|
||||
--flags) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --change-name --update-dups -n --dry-run --flags --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_remove() {
|
||||
case "$prev" in
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_scm() {
|
||||
case "$prev" in
|
||||
--eval) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --listen --eval --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_server() {
|
||||
case "$prev" in
|
||||
--eval) return;;
|
||||
--muhome) COMPREPLY=($(compgen -d -- "$cur")); return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all --commands --eval --allow-temp-file --listen --muhome -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_verify() {
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -r --auto-retrieve --decrypt -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd_view() {
|
||||
case "$prev" in
|
||||
-o|--format) COMPREPLY=($(compgen -W "html plain sexp" -- "$cur")); return;;
|
||||
--summary-len) return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-h --help --help-all -o --format -r --auto-retrieve --decrypt --summary-len --terminate -V --version -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -f -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu_cmd() {
|
||||
local i=$1 sub=
|
||||
while (( i < COMP_CWORD )); do
|
||||
case "${COMP_WORDS[i]}" in
|
||||
=|-*) ((i++));;
|
||||
*) sub="${COMP_WORDS[i]}"; ((i++)); break;;
|
||||
esac
|
||||
done
|
||||
case "$sub" in
|
||||
add) _mu_cmd_add "$i"; return;;
|
||||
cfind) _mu_cmd_cfind "$i"; return;;
|
||||
extract) _mu_cmd_extract "$i"; return;;
|
||||
fields) _mu_cmd_fields "$i"; return;;
|
||||
find) _mu_cmd_find "$i"; return;;
|
||||
help) _mu_cmd_help "$i"; return;;
|
||||
index) _mu_cmd_index "$i"; return;;
|
||||
info) _mu_cmd_info "$i"; return;;
|
||||
init) _mu_cmd_init "$i"; return;;
|
||||
labels) _mu_cmd_labels "$i"; return;;
|
||||
mkdir) _mu_cmd_mkdir "$i"; return;;
|
||||
move) _mu_cmd_move "$i"; return;;
|
||||
remove) _mu_cmd_remove "$i"; return;;
|
||||
scm) _mu_cmd_scm "$i"; return;;
|
||||
server) _mu_cmd_server "$i"; return;;
|
||||
verify) _mu_cmd_verify "$i"; return;;
|
||||
view) _mu_cmd_view "$i"; return;;
|
||||
esac
|
||||
case "$cur" in
|
||||
-*) COMPREPLY=($(compgen -W "-V --version -h --help --help-all -q --quiet -v --verbose --nocolor" -- "$cur"));;
|
||||
*) COMPREPLY=($(compgen -W "add cfind extract fields find help index info init labels mkdir move remove scm server verify view" -- "$cur"));;
|
||||
esac
|
||||
}
|
||||
|
||||
_mu() {
|
||||
local cur prev
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
# handle '--opt=value' (bash splits on '=')
|
||||
[[ "$cur" == "=" ]] && cur=""
|
||||
[[ "$prev" == "=" && $COMP_CWORD -ge 2 ]] && prev="${COMP_WORDS[COMP_CWORD-2]}"
|
||||
|
||||
_mu_cmd 1
|
||||
}
|
||||
|
||||
complete -F _mu mu
|
||||
Reference in New Issue
Block a user