#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tty-ask-password-agent
# SPDX-License-Identifier: LGPL-2.1-or-later

local curcontext="$curcontext" state lstate line
case "$service" in
    systemd-ask-password)
        _arguments \
            '(- *)'{-h,--help}'[Show this help]' \
            '--icon=[Icon name]:icon name:' \
            '--timeout=[Timeout in sec]:timeout (seconds):' \
            '--no-tty[Ask question via agent even on TTY]' \
            '--accept-cached[Accept cached passwords]' \
            '--multiple[List multiple passwords if available]'
        ;;
    systemd-cat)
        _arguments \
            '(- *)'{-h,--help}'[Show this help]' \
            '(- *)--version[Show package version.]' \
            '(-t --identifier)'{-t+,--identifier=}'[Set syslog identifier.]:syslog identifier:' \
            '(-p --priority)'{-p+,--priority=}'[Set priority value.]:value:({0..7})' \
            '--level-prefix=[Control whether level prefix shall be parsed.]:boolean:(1 0)' \
            '--namespace=[Connect to specified journal namespace.]:journal namespace:'
        _precommand
        ;;
    systemd-cgls)
        _arguments \
            '(- *)'{-h,--help}'[Show this help]' \
            '(- *)--version[Show package version]' \
            '--no-pager[Do not pipe output into a pager]' \
            '(-a --all)'{-a,--all}'[Show all groups, including empty]' \
            '-k[Include kernel threads in output]' \
            ':cgroups:(cpuset cpu cpuacct memory devices freezer blkio)'
        ;;
    systemd-cgtop)
        _arguments \
            '(-)'{-h,--help}'[Show this help]' \
            '(-)--version[Print version and exit]' \
            '(-c -m -i -t)-p[Order by path]' \
            '(-c -p -m -i)-t[Order by number of tasks]' \
            '(-m -p -i -t)-c[Order by CPU load]' \
            '(-c -p -i -t)-m[Order by memory load]' \
            '(-c -m -p -t)-i[Order by IO load]' \
            '(-d --delay)'{-d+,--delay=}'[Specify delay]:delay:' \
            '(-n --iterations)'{-n+,--iterations=}'[Run for N iterations before exiting]:number of iterations:' \
            '(-b --batch)'{-b,--batch}'[Run in batch mode, accepting no input]' \
            '--depth=[Maximum traversal depth]:maximum depth:'
        ;;
    systemd-detect-virt)
        _arguments \
            '(-)'{-h,--help}'[Show this help]' \
            '(-)--version[Show package version]' \
            '(-c --container)'{-c,--container}'[Only detect whether we are run in a container]' \
            '(-v --vm)'{-v,--vm}'[Only detect whether we are run in a VM]' \
            '(-q --quiet)'{-q,--quiet}"[Don't output anything, just set return value]"
        ;;
    systemd-machine-id-setup)
        _arguments \
            '(-)'{-h,--help}'[Show this help]' \
            '(-)--version[Show package version]'
        ;;
    systemd-notify)
        _arguments \
            '(-)'{-h,--help}'[Show this help]' \
            '(-)--version[Show package version]' \
            '--ready[Inform the init system about service start-up completion.]' \
            '--pid=[Inform the init system about the main PID of the daemon]:daemon main PID:_pids' \
            '--status=[Send a free-form status string for the daemon to the init systemd]:status string:' \
            '--booted[Returns 0 if the system was booted up with systemd]'
        ;;
    systemd-tty-ask-password-agent)
        _arguments \
            '(-)'{-h,--help}'[Prints a short help text and exits.]' \
            '(-)--version[Prints a short version string and exits.]' \
            '--list[Lists all currently pending system password requests.]' \
            '--query[Process all currently pending system password requests by querying the user on the calling TTY.]' \
            '--watch[Continuously process password requests.]' \
            '--wall[Forward password requests to wall(1).]' \
            '--plymouth[Ask question with plymouth(8).]' \
            '--console[Ask question on /dev/console.]'
        ;;
    *) _message 'eh?' ;;
esac
