summaryrefslogtreecommitdiffstats
path: root/shell-completion/zsh/_kernel-install
blob: cb2565db7a3865698c250e777c96fc988c84586d (plain)
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
#compdef kernel-install
# SPDX-License-Identifier: LGPL-2.1-or-later

(( $+functions[_kernel-install_images] )) ||
_kernel-install_images(){
    if [[ "$words[2]" == "remove" ]]; then
        _message 'No more options'
    else
        _path_files -W /boot/ -P /boot/ -g "vmlinuz-*"
    fi
}

(( $+functions[_kernel-install_kernels] )) ||
_kernel-install_kernels(){
    read _MACHINE_ID < /etc/machine-id
    _kernel=( /lib/modules/[0-9]* )
    if [[ "$cmd" == "remove" && -n "$_MACHINE_ID" ]]; then
        _kernel=( "/boot/$_MACHINE_ID"/[0-9]* )
    fi
    _kernel=( ${_kernel##*/} )
    _describe "installed kernels" _kernel
}

_arguments \
    '1::add or remove:(add remove)' \
    '2::kernel versions:_kernel-install_kernels' \
    '3::kernel images:_kernel-install_images'