summaryrefslogtreecommitdiff
path: root/completions/lilo
diff options
context:
space:
mode:
Diffstat (limited to 'completions/lilo')
-rw-r--r--completions/lilo40
1 files changed, 28 insertions, 12 deletions
diff --git a/completions/lilo b/completions/lilo
index 03e3ee29..af8539aa 100644
--- a/completions/lilo
+++ b/completions/lilo
@@ -2,8 +2,9 @@
_lilo_labels()
{
- COMPREPLY=( $(compgen -W "$(awk -F'=' '/label/ {print $2}' \
- /etc/lilo.conf | command sed -e 's/\"//g')" -- "$cur") )
+ COMPREPLY=($(compgen -W "$(awk -F= '$1 ~ /^[ \t]*label$/ {print $2}' \
+ ${1:-/etc/lilo.conf} 2>/dev/null | command sed -e 's/\"//g')" \
+ -- "$cur"))
}
_lilo()
@@ -12,7 +13,7 @@ _lilo()
_init_completion || return
case $prev in
- -C|-i|-m|-s|-S)
+ -C | -i | -m | -s | -S)
_filedir
return
;;
@@ -20,12 +21,19 @@ _lilo()
_filedir -d
return
;;
- -I|-D|-R)
+ -I | -D | -R)
# label completion
- _lilo_labels
+ 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)
+ -A | -b | -M | -u | -U)
# device completion
cur=${cur:=/dev/}
_filedir
@@ -33,18 +41,26 @@ _lilo()
;;
-T)
# topic completion
- COMPREPLY=( $(compgen -W 'help ChRul EBDA geom geom= table=
- video' -- "$cur") )
+ 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
+ if [[ $cur == -* ]]; then
# relevant options completion
- COMPREPLY=( $(compgen -W '-A -b -c -C -d -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") )
+ 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
+ complete -F _lilo lilo
# ex: filetype=sh