mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 09:21:26 +03:00
c1072f6473
Since there's no file extension, emacs and other editors do not know that this is supposed to be in shell syntax.
53 lines
4.5 KiB
Bash
53 lines
4.5 KiB
Bash
#compdef systemd-nspawn -*- shell-script -*-
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
(( $+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 a 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'
|