summaryrefslogtreecommitdiffstats
path: root/completions/lilo
diff options
context:
space:
mode:
Diffstat (limited to 'completions/lilo')
-rw-r--r--completions/lilo66
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