Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 53 lines (45 sloc) 1.398 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#!/bin/bash
# mkinitcpio bash completion by Seblu <seblu@seblu.net>

_lsinitcpio() {
local action cur
action="-a -h -n -v -x"
_get_comp_words_by_ref cur
case "$cur" in
-*) COMPREPLY=($(compgen -W "${action}" -- "$cur"));;
*) _filedir;;
esac
}

_find_kernel_versions() {
local -a matches
local regex

# add completions from kernels in /boot
regex="Linux kernel.*version"
while IFS=':' read -r file metadata; do
[[ $metadata =~ $regex ]] || continue
matches+=("$file")
done < <(file -e ascii /boot/*)

# add completions based on kernel versions in /lib/modules
for dir in /lib/modules/*/kernel; do
dir=${dir%/kernel}
matches+=("${dir#/lib/modules/}")
done

COMPREPLY=($(compgen -W "${matches[*]}" -- $cur))
}

_mkinitcpio() {
local action cur prev
action="-A -b -c -g -H -h -k -L -M -n -p -S -s -v -z"
_get_comp_words_by_ref cur prev
case "$prev" in
-c|-g) _filedir;;
-k) _find_kernel_versions;;
-b) _filedir -d;;
-p) COMPREPLY=($(cd /etc/mkinitcpio.d/ && compgen -X '!*.preset' -f -- $cur))
COMPREPLY=("${COMPREPLY[@]%.preset}");;
-A|-H|-S) COMPREPLY=($(cd /lib/initcpio/install/ && compgen -f -- $cur) \
$(cd /usr/lib/initcpio/install/ && compgen -f -- $cur));;
*) COMPREPLY=($(compgen -W "${action}" -- "$cur"));;
esac
}

complete -F _mkinitcpio mkinitcpio
complete -F _lsinitcpio lsinitcpio

# vim: set ts=2 sw=2 ft=sh noet:
Something went wrong with that request. Please try again.