diff options
Diffstat (limited to '')
-rw-r--r-- | completions/lilo | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/completions/lilo b/completions/lilo new file mode 100644 index 0000000..af8539a --- /dev/null +++ b/completions/lilo @@ -0,0 +1,66 @@ +# bash completion for lilo(8) -*- shell-script -*- + +_lilo_labels() +{ + COMPREPLY=($(compgen -W "$(awk -F= '$1 ~ /^[ \t]*label$/ {print $2}' \ + ${1:-/etc/lilo.conf} 2>/dev/null | command sed -e 's/\"//g')" \ + -- "$cur")) +} + +_lilo() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -C | -i | -m | -s | -S) + _filedir + return + ;; + -r) + _filedir -d + return + ;; + -I | -D | -R) + # label completion + local i conf + for i in "${!words[@]}"; do + if [[ ${words[i]} == -C ]]; then + conf=${words[i + 1]} + break + fi + done + _lilo_labels $conf + return + ;; + -A | -b | -M | -u | -U) + # device completion + cur=${cur:=/dev/} + _filedir + return + ;; + -T) + # topic completion + COMPREPLY=($(compgen -W 'help ChRul EBDA geom geom= table= + video' -- "$cur")) + return + ;; + -B) + _filedir bmp + return + ;; + -E) + _filedir '@(bmp|dat)' + return + ;; + esac + + if [[ $cur == -* ]]; then + # relevant options completion + COMPREPLY=($(compgen -W '-A -B -b -c -C -d -E -f -g -i -I -l -L -m -M + -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- "$cur")) + fi +} && + complete -F _lilo lilo + +# ex: filetype=sh |