mirror of
				https://github.com/systemd/systemd.git
				synced 2025-11-03 08:24:08 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# systemd-dissect(1) completion                       -*- shell-script -*-
 | 
						|
# SPDX-License-Identifier: LGPL-2.1-or-later
 | 
						|
#
 | 
						|
# This file is part of systemd.
 | 
						|
#
 | 
						|
# systemd is free software; you can redistribute it and/or modify it
 | 
						|
# under the terms of the GNU Lesser General Public License as published by
 | 
						|
# the Free Software Foundation; either version 2.1 of the License, or
 | 
						|
# (at your option) any later version.
 | 
						|
#
 | 
						|
# systemd is distributed in the hope that it will be useful, but
 | 
						|
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
						|
# General Public License for more details.
 | 
						|
#
 | 
						|
# You should have received a copy of the GNU Lesser General Public License
 | 
						|
# along with systemd; If not, see <https://www.gnu.org/licenses/>.
 | 
						|
 | 
						|
__contains_word() {
 | 
						|
    local w word=$1; shift
 | 
						|
    for w in "$@"; do
 | 
						|
        [[ $w = "$word" ]] && return
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
_systemd_dissect() {
 | 
						|
    local comps
 | 
						|
    local cur=${COMP_WORDS[COMP_CWORD]} prev_1=${COMP_WORDS[COMP_CWORD-1]} prev_2=${COMP_WORDS[COMP_CWORD-2]} words cword
 | 
						|
    local -A OPTS=(
 | 
						|
        [STANDALONE]='-h --help --version
 | 
						|
                     --no-pager
 | 
						|
                     --no-legend
 | 
						|
                     -r --read-only
 | 
						|
                     --mkdir
 | 
						|
                     --rmdir'
 | 
						|
        [ARG]='-m --mount -M
 | 
						|
               -u --umount -U
 | 
						|
               -l --list
 | 
						|
               -x --copy-from
 | 
						|
               -a --copy-to
 | 
						|
               --fsck
 | 
						|
               --growfs
 | 
						|
               --discard
 | 
						|
               --root-hash
 | 
						|
               --root-hash-sig
 | 
						|
               --verity-data
 | 
						|
               --json'
 | 
						|
    )
 | 
						|
 | 
						|
    _init_completion || return
 | 
						|
 | 
						|
    if __contains_word "$prev_1" ${OPTS[ARG]}; then
 | 
						|
        case $prev_1 in
 | 
						|
            -l|--list|-m|--mount|-M|-x|--copy-from|-a|--copy-to|--verity-data)
 | 
						|
                comps=$(compgen -A file -- "$cur")
 | 
						|
                compopt -o filenames
 | 
						|
                ;;
 | 
						|
            -u|--umount|-U)
 | 
						|
                comps=$(compgen -A directory -- "$cur" )
 | 
						|
                compopt -o dirnames
 | 
						|
                ;;
 | 
						|
            --fsck|--growfs)
 | 
						|
                comps='yes no'
 | 
						|
                ;;
 | 
						|
            --discard)
 | 
						|
                comps='disabled loop all crypto'
 | 
						|
                ;;
 | 
						|
            --root-hash-sig)
 | 
						|
                comps="base64: $(compgen -A file -- "$cur")"
 | 
						|
                compopt -o filenames
 | 
						|
                ;;
 | 
						|
            --json)
 | 
						|
                comps='pretty short off'
 | 
						|
                ;;
 | 
						|
        esac
 | 
						|
        COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
 | 
						|
        return 0
 | 
						|
    fi
 | 
						|
 | 
						|
    if __contains_word "$prev_2" ${OPTS[ARG]}; then
 | 
						|
        case $prev_2 in
 | 
						|
            -m|--mount|-M)
 | 
						|
                comps=$(compgen -A directory -- "$cur" )
 | 
						|
                compopt -o dirnames
 | 
						|
                ;;
 | 
						|
            *)
 | 
						|
                comps=$(compgen -A file -- "$cur" )
 | 
						|
                compopt -o filenames
 | 
						|
                ;;
 | 
						|
        esac
 | 
						|
        COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
 | 
						|
        return 0
 | 
						|
    fi
 | 
						|
 | 
						|
    if [[ "$cur" = -* ]]; then
 | 
						|
        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
 | 
						|
        return 0
 | 
						|
    fi
 | 
						|
 | 
						|
    COMPREPLY=( $(compgen -A file -- "$cur") )
 | 
						|
    compopt -o filenames
 | 
						|
    return 0
 | 
						|
}
 | 
						|
 | 
						|
complete -F _systemd_dissect systemd-dissect
 |