#compdef systemd-nspawn
# SPDX-License-Identifier: LGPL-2.1-or-later

(( $+functions[_systemd-nspawn_caps] )) ||
_systemd-nspawn_caps(){
    local -a _caps
    _caps=( CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH
            CAP_FOWNER CAP_FSETID CAP_IPC_OWNER CAP_KILL CAP_LEASE CAP_LINUX_IMMUTABLE
            CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SETGID CAP_SETFCAP CAP_SETPCAP
            CAP_SETUID CAP_SYS_ADMIN CAP_SYS_CHROOT CAP_SYS_NICE CAP_SYS_PTRACE CAP_SYS_TTY_CONFIG
            CAP_SYS_RESOURCE CAP_SYS_BOOT )
    _values -s , 'capabilities' "$_caps[@]"
}

_arguments \
    {-h,--help}'[Show this help.]' \
    '--version[Print a short version string and exit.]' \
    {--quiet,-q}'[Turns off any status output by the tool itself.]' \
    {--directory=,-D+}'[Directory to use as file system root for the namespace container. If omitted the current directory will be used.]:directories:_directories' \
    '--template=[Initialize root directory from template directory, if missing.]:template:_directories' \
    {--ephemeral,-x}'[Run container with snapshot of root directory, and remove it after exit.]' \
    {--image=,-i+}'[Disk image to mount the root directory for the container from.]:disk image: _files' \
    {--boot,-b}'[Automatically search for an init binary and invoke it instead of a shell or a user supplied program.]' \
    {--user=,-u+}'[Run the command under specified user, create home directory and cd into it.]:user:_users' \
    {--machine=,-M+}'[Sets the machine name for this container.]: : _message "container name"' \
    '--uuid=[Set the specified uuid for the container.]: : _message "container UUID"' \
    {--slice=,-S+}'[Make the container part of the specified slice, instead of the default machine.slice.]: : _message slice' \
    '--private-network[Disconnect networking of the container from the host.]' \
    '--network-interface=[Assign the specified network interface to the container.]: : _net_interfaces' \
    '--network-macvlan=[Create a "macvlan" interface of the specified Ethernet network interface and add it to the container.]: : _net_interfaces' \
    '--network-ipvlan=[Create an "ipvlan" network interface based on an existing network interface to the container.]: : _net_interfaces' \
    {--network-veth,-n}'[Create a virtual Ethernet link (veth) between host and container.]' \
    '--network-bridge=[Adds the host side of the Ethernet link created with --network-veth to the specified bridge.]: : _net_interfaces' \
    {--port=,-p+}'[Expose a container IP port on the host.]: : _message port' \
    {--selinux-context=,-Z+}'[Sets the SELinux security context to be used to label processes in the container.]: : _message "SELinux context"' \
    {--selinux-apifs-context=,-L+}'[Sets the SELinux security context to be used to label files in the virtual API file systems in the container.]: : _message "SELinux context"' \
    '--capability=[List one or more additional capabilities to grant the container.]:capabilities:_systemd-nspawn_caps' \
    '--drop-capability=[Specify one or more additional capabilities to drop for the containerm]:capabilities:_systemd-nspawn_caps' \
    "--link-journal=[Control whether the container's journal shall be made visible to the host system.]:options:(no host guest auto)" \
    '-j[Equivalent to --link-journal=guest.]' \
    '--read-only[Mount the root file system read only for the container.]' \
    '--bind=[Bind mount a file or directory from the host into the container.]: : _files' \
    '--bind-ro=[Bind mount a file or directory from the host into the container (read-only).]: : _files' \
    '--tmpfs=[Mount an empty tmpfs to the specified directory.]: : _files' \
    '--setenv=[Specifies an environment variable assignment to pass to the init process in the container, in the format "NAME=VALUE".]: : _message "environment variables"' \
    '--share-system[Allows the container to share certain system facilities with the host.]' \
    '--register=[Controls whether the container is registered with systemd-machined(8).]:systemd-machined registration:( yes no )' \
    '--keep-unit[Instead of creating a transient scope unit to run the container in, simply register the service or scope unit systemd-nspawn has been invoked in with systemd-machined(8).]' \
    '--personality=[Control the architecture ("personality") reported by uname(2) in the container.]:architecture:(x86 x86-64)' \
    '--volatile=[Run the system in volatile mode.]:volatile:(no yes state)' \
    "--notify-ready=[Control when the ready notification is sent]:options:(yes no)" \
    '*:: : _normal'
