���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /home/ukubnwwtacc0unt/chapelbellstudios.com/uploads/cover/zsh.tar
���ѧ٧ѧ�
site-functions/_firewalld 0000644 00000045165 15204002235 0011555 0 ustar 00 #compdef firewall-cmd firewall-offline-cmd local curcontext="$curcontext" name nm="$compstate[nmatches]" local -a state line expl direct args auxargs opargs suf typeset -A opt_args direct=( '--get-all-chains[get all chains]' '--get-chains[get all chains added to the table]:family:(ipv4 ipv6 eb):table:->tables' '--add-chain[add a new chain to the table]:family:(ipv4 ipv6 eb):table:->tables:new chain' '--remove-chain[remove a chain from the table]:family:(ipv4 ipv6 eb):table:->tables:chain:->chains' '--query-chain[return whether the chain has been added to the table]:family:(ipv4 ipv6 eb):table:->tables:chain:->chains' '--get-all-rules[get all rules]' '--get-rules[get all rules added to chain in table]:family:(ipv4 ipv6 eb):table:->tables:chain:->chains' '--add-rule[add rule to chain in table]:family:(ipv4 ipv6 eb):table:->tables:chain:->chains:priority: :*:argument' '--remove-rule[remove rule with priority from chain in table]:family:(ipv4 ipv6 eb):table:->tables:chain:->chains:priority: :*:argument' '--remove-rules[remove rules from chain in table]:family:(ipv4 ipv6 eb):table:->tables:chain->chains' '--query-rule[chain in table]:family:(ipv4 ipv6 eb):table:->tables:chain: :priority: :*:argument' '--get-all-passthroughs[get all tracked passthrough rules]' '--get-passthroughs[get tracked passthrough rules]:family:(ipv4 ipv6 eb):*:: : _iptables' '--add-passthrough[add a new tracked passthrough rule]:family:(ipv4 ipv6 eb):*:: : _iptables' '--remove-passthrough[remove a tracked passthrough rule]:family:(ipv4 ipv6 eb):*:: : _iptables' '--query-passthrough[return whether the tracked passthrough rule has been added]:family:(ipv4 ipv6 eb):*:: : _iptables' ) name='--name=[specify new name]:name' case $service in firewall-cmd) direct+=( '--passthrough[pass a command through (untracked by firewalld)]:family:(ipv4 ipv6 eb):*:: : _iptables' ) args=( '(--timeout)--permanent[set an option permanently]' ) auxargs=( '(--permanent)--timeout=[specify time for rule to be active]:time value (seconds)' ) opargs=( '(aux --permanent --zone)--state[print firewalld state]' '(aux --permanent --zone)--reload[reload firewall and keep state information]' '(aux --permanent --zone)--complete-reload[reload firewall and lose state information]' '(aux --permanent --zone)--runtime-to-permanent[create permanent from runtime configuration]' '(aux --permanent --zone -q --quiet)--get-active-zones[print currently active zones]' '*--remove-service=[remove a service from a zone]:service:->services' '(aux --permanent --zone)--panic-on[enable panic mode]' '(aux --permanent --zone)--panic-off[disable panic mode]' '(aux --permanent --zone)--query-panic[query whether panic mode is enabled]' ) ;; firewall-offline-cmd) args=( '--system-config[specify path to firewalld system configuration]:path:_directories' '--default-config[specify path to firewalld default configuration]:path:_directories' '--migrate-system-config-firewall=[import configuration data from the given configuration file]:file:_files' '--disabled[disable the firewall by disabling the firewalld service]' '!(--disabled)--enabled' '!--'{add,remove}'module=:iptables module' '!--custom-rules=:type:table:filename (ignored' \*{-s+,--service=}'[enable a service in the default zone]:service:->services' '*--remove-service=[disable a service in the default zone]:service:->services' \*{-p+,--port=}'[enable a port in the default zone]:port:->ports' \*{-t+,--trust=}'[bind an interface to the trusted zone]:interface:_net_interfaces' {-m+,--masq=}'[enable masquerading in the default zone, IPv4 only]:interface (ignored)' '--forward-port=[add port forward in the default zone]:port forward:->port-forwards' '--block-icmp=[block this ICMP type in the default zone]:icmp type:->icmp-types' "--policy-server[change Polkit actions to 'server' (more restricted)]" "--policy-desktop[change Polkit actions to 'desktop' (less restricted)]" ) opargs=( '*--remove-service-from-zone[remove a service from a zone]:service:->services' ) ;; esac # option ordering doesn't matter but listing fewer options makes # completion more useful: (( $words[(I)--direct] )) || direct=( \!$^direct ) # only list direct options after --direct (( $words[(I)--new-*-from-file*] )) || name="!$name" # also check for required options before listing --name _arguments -C -s $args $direct \ '!(-q --quiet)'{-v,--verbose} \ '(-q --quiet --list-all --list-all-zones --list-lockdown-whitelist-commands --list-lockdown-whitelist-contexts --list-lockdown-whitelist-uids --list-lockdown-whitelist-users --list-services --list-ports --list-protocols --list-icmp-blocks --list-forward-ports --list-rich-rules --list-interfaces --list-sources --get-default-zone --get-active-zones --get-zone-of-interface --get-zone-of-source --get-zones --get-services --get-icmptypes --get-target --info-zone --info-icmptype --info-service --info-ipset --get-ipsets --get-entries --info-helper --get-helpers --get-destinations --get-description --version -h --help)'{-q,--quiet}"[don't print status messages]" \ '*--zone=[use this zone to set or query options, else default zone]:zone:->zones' \ + aux \ $auxargs $name \ '*--option=[specify option]:option (key=value)' \ '--type=[specify ipset type]:ipset type:->ipset-types' \ '--ipset=[specify ipset]:ipset:->ipsets' \ '--icmptype=[specify icmp type]:icmp type:->icmp-types' \ '--service=[specify service]:service:->services' \ '--helper=[specify helper]:helper:->helpers' \ '--family=[specify family]:family:(ipv4 ipv6)' \ '--module=[specify module]:module' \ + '(op)' \ $opargs \ '(aux -)'{-h,--help}'[display usage information]' \ '(aux -)'{-V,--version}'[display version information]' \ '(aux --permanent --zone)--get-log-denied[print the log denied value]' \ '(aux --permanent --zone)--set-log-denied=[set log denied value]:value:(all unicast broadcast multicast off)' \ '(aux --permanent --zone)--get-automatic-helpers[print the automatic helpers value]' \ '(aux --permanent --zone)--set-automatic-helpers=[set automatic helpers value]:value:(yes no system)' \ '(aux --permanent --zone -q --quiet)--get-default-zone[print default zone for connections and interfaces]' \ '(aux --permanent --zone)--set-default-zone=[set default zone]:zone:->zones' \ '(--zone -q --quiet)--get-zones[print predefined zones]' \ '(--zone -q --quiet)--get-services[print predefined services]' \ '(--zone -q --quiet)--get-icmptypes[print predefined icmptypes]' \ '(-q --quiet)*--get-zone-of-interface=[print name of the zone the interface is bound to]:interface:_net_interfaces' \ '(-q --quiet)*--get-zone-of-source=[print name of the zone a source is bound to]:source' \ '(-q --quiet)--list-all-zones[list everything added for or enabled in all zones]' \ '--new-zone=[add a new zone]:zone:->zones' \ '--new-zone-from-file=[add a new zone from file with optional name]:filename:_files' \ '--delete-zone=[delete an existing zone]:zone:->zones' \ '--load-zone-defaults=[load zone default settings]:zone:->zones' \ '(-q --quiet)--get-target[get the zone target]' \ '--set-target=[set the zone target]:target:(default ACCEPT DROP REJECT)' \ '(-q --quiet)--info-zone=[print information about a zone]:zone:->zones' \ '--path-zone=[print file path of a zone]:zone:->zones' \ '(aux --permanent --zone)--get-ipset-types[print the supported ipset types]' \ '--new-ipset=[add a new ipset]:ipset:->ipsets' \ '--new-ipset-from-file=[add a new ipset from file with optional name]:filename:_files' \ '--delete-ipset=[delete an existing ipset]:ipset:->ipsets' \ '--load-ipset-defaults=[load ipset default settings]:ipset:->ipsets' \ '(-q --quiet)--info-ipset=[print information about an ipset]:ipset' \ '--path-ipset=[print file path of an ipset]:ipset' \ '(aux --permanent --zone -q --quiet)--get-ipsets[print predefined ipsets]' \ '--set-description=[set new description]:description' \ '(-q --quiet)--get-description[print description]' \ '--set-short=[set new short description]:description' \ '--get-short[print short description]' \ '*--add-entry=[add a new entry to an ipset]:entry' \ '*--remove-entry=[remove an entry from an ipset]:entry' \ '*--query-entry=[return whether ipset has an entry]:entry' \ '(-q --quiet)--get-entries[list entries of an ipset]' \ '*--add-entries-from-file=[add a new entries to an ipset]:entry' \ '--remove-entries-from-file=[remove entries from an ipset]:entry' \ '--new-icmptype=[add a new icmptype]:icmp type:->icmp-types' \ '--new-icmptype-from-file=[add a new icmptype from file with optional name]:file:_files' \ '--delete-icmptype=[delete an existing icmptype]:icmp type:->icmp-types' \ '--load-icmptype-defaults=[load icmptype default settings]:icmp type:->icmp-types' \ '(-q --quiet)--info-icmptype=[print information about an icmptype]:icmp type:->icmp-types' \ '--path-icmptype=[print file path of an icmptype]:icmp type:->icmp-types' \ '*--add-destination=[enable destination for ipv in icmptype]:destination:->destinations' \ '*--remove-destination=[disable destination for ipv in service or icmp-type]:destination:->destinations' \ '(-q --quiet)--get-destinations[list destinations]' \ '--new-service=[add a new service]:service' \ '--new-service-from-file=[add a new service from file with optional name]:file:_files' \ '--delete-service=[delete an existing service]:service:->services' \ '--load-service-defaults=[load icmptype default settings]:service:->services' \ '(-q --quiet)--info-service=[print information about a service]:service:->services' \ '--path-service=[print file path of a service]:service:->services' \ '*--add-port=[add a new port to service, zone or helper]:port:->ports' \ '*--remove-port=[remove a port from a service, zone or helper]:port:->ports' \ '*--query-port=[return whether the port has been added for service, zone or helper]:port:->ports' \ '--get-ports[list ports of service or helper]' \ '*--add-protocol=[add a new protocol to service or zone]:protocol' \ '*--remove-protocol=[remove a protocol from service or zone]:protocol' \ '*--query-protocol=[return whether the protocol has been added for service or zone]:protocol' \ '--get-protocols[list protocols of service]' \ '*--add-source-port=[add a new source port to service or zone]:port:->ports' \ '*--remove-source-port=[remove a source port from service or zone]:port:->ports' \ '*--query-source-port=[return whether the source port has been added for service or zone]:port:->ports' \ '--get-source-ports[list source ports of service]' \ '*--add-module=[add a new module to service]:module' \ '*--remove-module=[remove a module from service]:module' \ '*--query-module=[return whether the module has been added for service]:module' \ '--get-modules[list modules of service]' \ '*--set-destination=[set destination for ipv to address in service]:destination:->destinations' \ '--query-destination=[return whether destination ipv is set for service or enabled for icmptype]:destination:->destinations' \ '(-q --quiet)--list-all[list everything added for or enabled in a zone]' \ '(-q --quiet)--list-services[list services added for a zone]' \ '*--add-service=[add a service for a zone]:service:->services' \ '*--query-service=[return whether service has been added for a zone]:service:->services' \ '(-q --quiet)--list-ports[list ports added for a zone]' \ '(-q --quiet)--list-protocols[list protocols added for a zone]' \ '--list-source-ports[list source ports added for a zone]' \ '(-q --quiet)--list-icmp-blocks[list Internet ICMP type blocks added for a zone]' \ '*--add-icmp-block=[add an ICMP block for a zone]:icmp type:->icmp-types' \ '*--remove-icmp-block=[remove the ICMP block from a zone]:icmp type:->icmp-types' \ '*--query-icmp-block=[return whether an ICMP block has been added for a zone]:icmp type:->icmp-types' \ '--add-icmp-block-inversion[enable inversion of icmp blocks for a zone]' \ '--remove-icmp-block-inversion[disable inversion of icmp blocks for a zone]' \ '--query-icmp-block-inversion[return whether inversion of icmp blocks has been enabled for a zone]' \ '(-q --quiet)--list-forward-ports[list IPv4 forward ports added for a zone]' \ '*--add-forward-port=[add the IPv4 forward port for a zone]: :->port-forwards' \ '*--remove-forward-port=[remove the IPv4 forward port from a zone]: :->port-forwards' \ '*--query-forward-port=[return whether the IPv4 forward port has been added for a zone]: :->port-forwards' \ '--add-forward[enable forwarding between interfaces and sources in a zone]' \ '--remove-forward[disable forwarding between interfaces and sources in a zone]' \ '--query-forward[return whether forwarding has been enabled for a zone]' \ '--add-masquerade[enable IPv4 masquerade for a zone]' \ '--remove-masquerade[disable IPv4 masquerade for a zone]' \ '--query-masquerade[return whether IPv4 masquerading has been enabled for a zone]' \ '(-q --quiet)--list-rich-rules[list rich language rules added for a zone]' \ '*--add-rich-rule=[add rich language rule for a zone]:rule' \ '*--remove-rich-rule=[remove specified rich language rule from a zone]:rule' \ '*--query-rich-rule=[return whether specified rich language rule has been added for a zone]:rule' \ '(-q --quiet)--list-interfaces[list interfaces that are bound to a zone]' \ '*--add-interface=[bind the specified interface to a zone]:interface:_net_interfaces' \ '*--change-interface=[change zone the specified interface is bound to]:interface:_net_interfaces' \ '*--query-interface=[query whether specified interface is bound to a zone]:interface:_net_interfaces' \ '*--remove-interface=[remove binding of specified interface from a zone]:interface:_net_interfaces' \ '(-q --quiet)--list-sources[list sources that are bound to a zone]' \ '*--add-source=[bind source to a zone]: :->sources' \ '*--change-source=[change zone a source is bound to]: :->sources' \ '*--query-source=[query whether source is bound to a zone]: :->sources' \ '*--remove-source=[remove binding of a source from a zone]: :->sources' \ '--new-helper=[add a new helper]:helper:->helpers' \ '--new-helper-from-file=[add a new helper from file with optional name]:file:_files' \ '--delete-helper=[delete an existing helper]:helper:->helpers' \ '--load-helper-defaults=[load helper default settings]:helper:->helpers' \ '(--zone -q --quiet)--info-helper=[print information about an helper]:helper:->helpers' \ '--path-helper=[print file path of an helper]:helper:->helpers' \ '(--zone -q --quiet)--get-helpers[print predefined helpers]' \ '--set-module=[set module to helper]:module' \ '--get-module[get module from helper]' \ '--set-family=[set family for helper]:family' \ '--get-family[get family from helper]' \ '(aux --permanent --zone)--lockdown-on[enable lockdown]' \ '(aux --permanent --zone)--lockdown-off[disable lockdown]' \ '(aux --permanent --zone)--query-lockdown[query whether lockdown is enabled]' \ '(-q --quiet)--list-lockdown-whitelist-commands[list all command lines that are on the whitelist]' \ '*--add-lockdown-whitelist-command=[add a command to the whitelist]:command:_cmdstring' \ '*--remove-lockdown-whitelist-command=[remove the command from the whitelist]:command' \ '*--query-lockdown-whitelist-command=[query whether a command is on the whitelist]:command' \ '(-q --quiet)--list-lockdown-whitelist-contexts[list all contexts that are on the whitelist]' \ '*--add-lockdown-whitelist-context=[add the specified context to the whitelist]:context' \ '*--remove-lockdown-whitelist-context=[remove a context from the whitelist]:context' \ '*--query-lockdown-whitelist-context=[query whether a context is on the whitelist]:context' \ '(-q --quiet)--list-lockdown-whitelist-uids[list all user ids that are on the whitelist]' \ '*--add-lockdown-whitelist-uid=[add the specified user id to the whitelist]:uid' \ '*--remove-lockdown-whitelist-uid=[remove the specified user id from the whitelist]:uid' \ '*--query-lockdown-whitelist-uid=[query whether a user id is on the whitelist]:uid' \ '(-q --quiet)--list-lockdown-whitelist-users[list all user names that are on the whitelist]' \ '*--add-lockdown-whitelist-user=[add the specified user to the whitelist]:user:_users' \ '*--remove-lockdown-whitelist-user=[remove the specified user from the whitelist]:user:_users' \ '*--query-lockdown-whitelist-user=[query whether the specified user is on the whitelist]:user:_users' \ '--direct[first option for all direct options]' [[ $state = sources ]] && compset -P 'ipset:' && state=ipsets case $state in sources) _message -e sources "source[/mask]|MAC|ipset:ipset" ;; chains) _description chains expl 'chain' compadd "$expl[@]" - ${${(f)"$(_call_program chains $words[1] ${(k)opt_args[--permanent]} --direct --get-all-chains)"}##* } ;; destinations) if compset -P 1 '*:'; then if compset -P 1 '*/'; then _message -e masks "mask" else _message -e addresses "address" fi else compset -S ':*' || suf=( -qS : ) _description ipvs expl 'ipv' compadd "$expl[@]" $suf - ipv4 ipv6 fi ;; helpers) _description helpers expl 'helper' compadd "$expl[@]" - $(_call_program helpers $words[1] ${(k)opt_args[--permanent]} --get-helpers) ;; icmp-types) _description icmp-types expl 'icmp type' compadd "$expl[@]" - $(_call_program icmp-types $words[1] --get-icmptypes) ;; ipsets) _description ipsets expl 'ipset' compadd "$expl[@]" - $(_call_program ipsets $words[1] ${(k)opt_args[--permanent]} --get-ipsets) ;; ipset-types) _description ipset-types expl 'ipset type' compadd "$expl[@]" - $(_call_program ipset-types $words[1] --get-ipset-types) ;; ports) if compset -P 1 '*/'; then _description protocols expl 'protocol' compadd "$expl[@]" - tcp udp sctp dccp else _message -e ports 'port number' fi ;; port-forwards) _values -S = -s : 'port forward' \ 'port[specify port]:port range:_sequence -n 2 -s - _ports' \ 'proto[specify protocol]:protocol:(tcp udp sctp dccp)' \ 'toport[specify port]:port range:_sequence -n 2 -s - _ports' \ 'toaddr[specify destination address]:address[/mask]' ;; services) _description services expl 'service' compadd "$expl[@]" - $(_call_program services $words[1] --get-services) ;; tables) _description services expl 'service' compadd "$expl[@]" - security raw mangle nat filter ;; zones) _description zones expl 'zone' compadd "$expl[@]" - $(_call_program zones $words[1] --get-zones) ;; esac # return whether matches were added [[ nm -ne compstate[nmatches] ]] && return 0 return 1 site-functions/_systemd-resolve 0000644 00000004432 15204002235 0012741 0 ustar 00 #compdef systemd-resolve # SPDX-License-Identifier: LGPL-2.1+ # # 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 <http://www.gnu.org/licenses/>. _dns_protocol() { local -a _protocol _protocol=( $(_call_program protocol ${service} --legend=no --protocol help; echo help) ) _values 'protocol' "$_protocol[@]" } _dns_type() { local -a _type _type=( $(_call_program type ${service} --legend=no --type help; echo help) ) _values 'type' "$_type[@]" } _dns_class() { local -a _class _class=( $(_call_program class ${service} --legend=no --class help; echo help) ) _values 'class' "$_class[@]" } _systemd-resolve_none() { _alternative : \ 'domain:DNS address:' \ 'address:email address:' } _arguments \ {-h,--help}'[Print a short help text and exit]' \ '--version[Print a short version string and exit]' \ '--legend=no[Do not show headers and footers]' \ '-4[Resolve IPv4 addresses]' \ '-6[Resolve IPv6 addresses]' \ {-i+,--interface=}'[Look on interface]:interface:_net_interfaces' \ {-p+,--protocol=}'[Look via protocol]:protocol:_dns_protocol' \ {-t+,--type=}'[Query RR with DNS type]:type:_dns_type' \ {-c+,--class=}'[Query RR with DNS class]:class:_dns_class' \ '--service[Resolve services]' \ '--service-address=no[Do not resolve address for services]' \ '--service-txt=no[Do not resolve TXT records for services]' \ '--openpgp[Query OpenPGP public key]' \ '--tlsa[Query TLS public key]' \ '--cname=no[Do not follow CNAME redirects]' \ '--search=no[Do not use search domains]' \ '--statistics[Show resolver statistics]' \ '--reset-statistics[Reset resolver statistics]' \ '*::default: _systemd-resolve_none' site-functions/_hostnamectl 0000644 00000004336 15204002235 0012120 0 ustar 00 #compdef hostnamectl # SPDX-License-Identifier: LGPL-2.1+ _hostnamectl_set-hostname() { if (( CURRENT <= 3 )); then _message "new hostname" else _message "no more options" fi } _hostnamectl_set-icon-name() { if (( CURRENT <= 3 )); then _message "new icon name" else _message "no more options" fi } _hostnamectl_set-chassis() { if (( CURRENT <= 3 )); then _chassis=( desktop laptop convertible server tablet handset watch embedded vm container ) _describe chassis _chassis else _message "no more options" fi } _hostnamectl_set-deployment() { if (( CURRENT <= 3 )); then _message "new environment" else _message "no more options" fi } _hostnamectl_set-location() { if (( CURRENT <= 3 )); then _message "new location" else _message "no more options" fi } _hostnamectl_command() { local -a _hostnamectl_cmds _hostnamectl_cmds=( "status:Show current hostname settings" "set-hostname:Set system hostname" "set-icon-name:Set icon name for host" "set-chassis:Set chassis type for host" "set-deployment:Set deployment environment for host" "set-location:Set location for host" ) if (( CURRENT == 1 )); then _describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@" else local curcontext="$curcontext" cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then if [[ $cmd == status ]]; then _message "no options" else _hostnamectl_$cmd fi else _message "unknown hostnamectl command: $words[1]" fi fi } _arguments -s \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--transient[Only set transient hostname]' \ '--static[Only set static hostname]' \ '--pretty[Only set pretty hostname]' \ '--no-ask-password[Do not prompt for password]' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ '*::hostnamectl commands:_hostnamectl_command' site-functions/_busctl 0000644 00000005761 15204002235 0011076 0 ustar 00 #compdef busctl # SPDX-License-Identifier: LGPL-2.1+ # busctl(1) completion -*- shell-script -*- # # 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 <http://www.gnu.org/licenses/>. (( $+functions[_busctl_command] )) || _busctl_command() { local -a _busctl_cmds _busctl_cmds=( "list:List bus names" "status:Show bus service, process or bus owner credentials" "monitor:Show bus traffic" "capture:Capture bus traffix as pcap" "tree:Show object tree of service" "introspect:Introspect object" "call:Call a method" "get-property:Get property value" "set-property:Set property value" ) if (( CURRENT == 1 )); then _describe -t commands 'busctl command' _busctl_cmds || compadd "$@" else local curcontext="$curcontext" cmd="${${_busctl_cmds[(r)$words[1]:*]%%:*}}" if (( $+functions[_busctl_$cmd] )); then _busctl_$cmd else _message "no more options" fi fi } _arguments \ {-h,--help}'[Prints a short help text and exits.]' \ '--version[Prints a short version string and exits.]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-legend[Do not show the headers and footers]' \ '--system[Connect to system manager]' \ '--user[Connect to user service manager]' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ '--address=[Connect to the bus specified by address]:address' \ '--show-machine[Show machine ID column in list]' \ '--unique[Only show unique names]' \ '--acquired[Only show acquired names]' \ '--activatable[Only show activatable names]' \ '--match=[Only show matching messages]:match' \ '--list[Do not show tree, but simple object path list]' \ '--quiet[Do not show method call reply]'\ '--verbose[Show result values in long format]' \ '--expect-reply=[Expect a method call reply]:boolean:(1 0)' \ '--auto-start=[Auto-start destination service]:boolean:(1 0)' \ '--allow-interactive-authorization=[Allow interactive authorization for operation]:boolean:(1 0)' \ '--timeout=[Maximum time to wait for method call completion]:timeout (seconds)' \ '--augment-creds=[Extend credential data with data read from /proc/$PID]:boolean:(1 0)' \ '*::busctl command:_busctl_command' site-functions/_parallel 0000644 00000000170 15204002235 0011363 0 ustar 00 #compdef parallel (( $+functions[_comp_parallel] )) || eval "$(parallel --shell-completion auto)" && _comp_parallel site-functions/_systemctl 0000644 00000036366 15204002235 0011636 0 ustar 00 #compdef systemctl # SPDX-License-Identifier: LGPL-2.1+ (( $+functions[_systemctl_command] )) || _systemctl_command() { local -a _systemctl_cmds _systemctl_cmds=( "list-sockets:List sockets" "list-timers:List timers" "list-units:List units" "start:Start (activate) one or more units" "stop:Stop (deactivate) one or more units" "reload:Reload one or more units" "restart:Start or restart one or more units" "condrestart:Restart one or more units if active" "try-restart:Restart one or more units if active" "reload-or-restart:Reload one or more units if possible, otherwise start or restart" "force-reload:Reload one or more units if possible, otherwise restart if active" "hibernate:Hibernate the system" "hybrid-sleep:Hibernate and suspend the system" "suspend-then-hibernate:Suspend the system for a period of time, and then hibernate it" "try-reload-or-restart:Reload one or more units if possible, otherwise restart if active" "isolate:Start one unit and stop all others" "kill:Send signal to processes of a unit" "is-active:Check whether units are active" "is-failed:Check whether units are failed" "status:Show runtime status of one or more units" "show:Show properties of one or more units/jobs or the manager" "cat:Show the source unit files and drop-ins" "reset-failed:Reset failed state for all, one, or more units" "list-unit-files:List installed unit files" "enable:Enable one or more unit files" "disable:Disable one or more unit files" "add-wants:Add Wants= dependencies to a unit" "add-requires:Add Requires= dependencies to a unit" "reenable:Reenable one or more unit files" "preset:Enable/disable one or more unit files based on preset configuration" "set-default:Set the default target" "get-default:Query the default target" "edit:Edit one or more unit files" "is-system-running:Query overall status of the system" "help:Show documentation for specified units" "list-dependencies:Show unit dependency tree" "mask:Mask one or more units" "unmask:Unmask one or more units" "link:Link one or more units files into the search path" "is-enabled:Check whether unit files are enabled" "list-jobs:List jobs" "cancel:Cancel all, one, or more jobs" "show-environment:Dump environment" "set-environment:Set one or more environment variables" "unset-environment:Unset one or more environment variables" "daemon-reload:Reload systemd manager configuration" "daemon-reexec:Reexecute systemd manager" "default:Enter system default mode" "rescue:Enter system rescue mode" "emergency:Enter system emergency mode" "halt:Shut down and halt the system" "suspend:Suspend the system" "poweroff:Shut down and power-off the system" "reboot:Shut down and reboot the system" "kexec:Shut down and reboot the system with kexec" "exit:Ask for user instance termination" "switch-root:Change root directory" "revert:Revert unit files to their vendor versions" ) if (( CURRENT == 1 )); then _describe -t commands 'systemctl command' _systemctl_cmds || compadd "$@" else local curcontext="$curcontext" expl cmd="${${_systemctl_cmds[(r)$words[1]:*]%%:*}}" # Deal with any aliases case $cmd in condrestart) cmd="try-restart";; force-reload) cmd="try-reload-or-restart";; esac if (( $#cmd )); then curcontext="${curcontext%:*:*}:systemctl-${cmd}:" local update_policy zstyle -s ":completion:${curcontext}:" cache-policy update_policy if [[ -z "$update_policy" ]]; then zstyle ":completion:${curcontext}:" cache-policy _systemctl_caching_policy fi _call_function ret _systemctl_$cmd || _message 'no more arguments' else _message "unknown systemctl command: $words[1]" fi return ret fi } __systemctl() { systemctl $_sys_service_mgr --full --no-legend --no-pager "$@" 2>/dev/null } # Fills the unit list _systemctl_all_units() { if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS$_sys_service_mgr ) || ! _retrieve_cache SYS_ALL_UNITS$_sys_service_mgr; then _sys_all_units=( ${${(f)"$(__systemctl list-units --all "$PREFIX*" )"}%% *} ) _store_cache SYS_ALL_UNITS$_sys_service_mgr _sys_all_units fi } # Fills the unit list including all file units _systemctl_really_all_units() { local -a all_unit_files; local -a really_all_units; if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS$_sys_service_mgr ) || ! _retrieve_cache SYS_REALLY_ALL_UNITS$_sys_service_mgr; then all_unit_files=( ${${(f)"$(__systemctl list-unit-files "$PREFIX*" )"}%% *} ) _systemctl_all_units really_all_units=($_sys_all_units $all_unit_files) _sys_really_all_units=(${(u)really_all_units}) _store_cache SYS_REALLY_ALL_UNITS$_sys_service_mgr _sys_really_all_units fi } _filter_units_by_property() { local property=$1 value=$2; shift 2 local -a units; units=("${(q-)@}") local -A props props=(${(f)"$(_call_program units "$service $_sys_service_mgr show --no-pager --property=\"Id,$property\" -- ${units} 2>/dev/null")"}) echo -E - "${(@g:o:)${(k@)props[(Re)$property=$value]}#Id=}" } _systemctl_get_non_template_names() { echo -E - ${^${(R)${(f)"$( __systemctl $mode list-unit-files "$PREFIX*" __systemctl $mode list-units --all "$PREFIX*" )"}:#*@.*}%%[[:space:]]*} } _systemctl_get_template_names() { echo -E - ${^${(M)${(f)"$(__systemctl list-unit-files "$PREFIX*" )"}##*@.[^[:space:]]##}%%@.*}@ } _systemctl_active_units() {_sys_active_units=( ${${(f)"$(__systemctl list-units "$PREFIX*" )"}%% *} )} _systemctl_startable_units(){ _sys_startable_units=( $( _filter_units_by_property ActiveState inactive $( _filter_units_by_property CanStart yes ${${${(f)"$( __systemctl $mode list-unit-files --state enabled,enabled-runtime,linked,linked-runtime,static,indirect,disabled,generated,transient "$PREFIX*" __systemctl $mode list-units --state inactive,failed "$PREFIX*" )"}:#*@.*}%%[[:space:]]*} )) ) } _systemctl_restartable_units(){ _sys_restartable_units=( $( _filter_units_by_property CanStart yes ${${${(f)"$( __systemctl $mode list-unit-files --state enabled,disabled,static "$PREFIX*" __systemctl $mode list-units "$PREFIX*" )"}:#*@.*}%%[[:space:]]*} ) ) } _systemctl_failed_units() {_sys_failed_units=( ${${(f)"$(__systemctl list-units --state=failed "$PREFIX*" )"}%% *} ) } _systemctl_unit_state() { typeset -gA _sys_unit_state; _sys_unit_state=( $(__systemctl list-unit-files "$PREFIX*" ) ) } local fun # Completion functions for ALL_UNITS for fun in cat mask ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { _systemctl_really_all_units _wanted systemd-units expl unit \ compadd "$@" -a - _sys_really_all_units } done # Completion functions for NONTEMPLATE_UNITS for fun in is-active is-failed is-enabled status show preset help list-dependencies edit revert add-wants add-requires ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { _wanted systemd-units expl unit \ compadd "$@" - $(_systemctl_get_non_template_names) } done # Completion functions for ENABLED_UNITS (( $+functions[_systemctl_disable] )) || _systemctl_disable() { local _sys_unit_state; _systemctl_unit_state _wanted systemd-units expl 'enabled unit' \ compadd "$@" - ${(k)_sys_unit_state[(R)enabled]} } (( $+functions[_systemctl_reenable] )) || _systemctl_reenable() { local _sys_unit_state; _systemctl_unit_state _wanted systemd-units expl 'enabled/disabled unit' \ compadd "$@" - ${(k)_sys_unit_state[(R)(enabled|disabled)]} $(_systemctl_get_template_names) } # Completion functions for DISABLED_UNITS (( $+functions[_systemctl_enable] )) || _systemctl_enable() { local _sys_unit_state; _systemctl_unit_state _wanted systemd-units expl 'disabled unit' \ compadd "$@" - ${(k)_sys_unit_state[(R)disabled]} $(_systemctl_get_template_names) } # Completion functions for FAILED_UNITS (( $+functions[_systemctl_reset-failed] )) || _systemctl_reset-failed() { local _sys_failed_units; _systemctl_failed_units _wanted systemd-units expl 'failed unit' \ compadd "$@" -a - _sys_failed_units || _message "no failed unit found" } # Completion functions for STARTABLE_UNITS (( $+functions[_systemctl_start] )) || _systemctl_start() { local _sys_startable_units; _systemctl_startable_units _wanted systemd-units expl 'startable unit' \ compadd "$@" - ${_sys_startable_units[*]} } # Completion functions for STOPPABLE_UNITS for fun in stop kill try-restart condrestart ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { local _sys_active_units; _systemctl_active_units _wanted systemd-units expl 'stoppable unit' \ compadd "$@" - $( _filter_units_by_property CanStop yes \ ${_sys_active_units[*]} ) } done # Completion functions for ISOLATABLE_UNITS (( $+functions[_systemctl_isolate] )) || _systemctl_isolate() { _systemctl_all_units _wanted systemd-units expl 'isolatable unit' \ compadd "$@" - $( _filter_units_by_property AllowIsolate yes \ ${_sys_all_units[*]} ) } # Completion functions for RELOADABLE_UNITS for fun in reload try-reload-or-restart force-reload ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { local _sys_active_units; _systemctl_active_units _wanted systemd-units expl 'reloadable unit' \ compadd "$@" - $( _filter_units_by_property CanReload yes \ ${_sys_active_units[*]} ) } done # Completion functions for RESTARTABLE_UNITS for fun in restart reload-or-restart ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { local _sys_restartable_units; _systemctl_restartable_units _wanted systemd-units expl 'restartable unit' \ compadd "$@" - ${_sys_restartable_units[*]} } done # Completion functions for MASKED_UNITS (( $+functions[_systemctl_unmask] )) || _systemctl_unmask() { local _sys_unit_state; _systemctl_unit_state _wanted systemd-units expl 'masked unit' \ compadd "$@" - ${(k)_sys_unit_state[(R)masked]} || _message "no masked units found" } # Completion functions for JOBS (( $+functions[_systemctl_cancel] )) || _systemctl_cancel() { _wanted systemd-jobs expl job \ compadd "$@" - ${${(f)"$(__systemctl list-jobs)"}%% *} || _message "no jobs found" } # Completion functions for TARGETS (( $+functions[_systemctl_set-default] )) || _systemctl_set-default() { _wanted systemd-targets expl target \ compadd "$@" - ${${(f)"$(__systemctl list-unit-files --type target --all "$PREFIX*" )"}%% *} || _message "no targets found" } # Completion functions for ENVS for fun in set-environment unset-environment ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { local fun=$0 ; fun=${fun##_systemctl_} local suf if [[ "${fun}" = "set-environment" ]]; then suf='-S=' fi _wanted systemd-environment expl 'environment variable' \ compadd "$@" ${suf} - ${${(f)"$(systemctl show-environment)"}%%=*} } done (( $+functions[_systemctl_link] )) || _systemctl_link() { _sd_unit_files } (( $+functions[_systemctl_switch-root] )) || _systemctl_switch-root() { _files } # no systemctl completion for: # [STANDALONE]='daemon-reexec daemon-reload default # emergency exit halt kexec list-jobs list-units # list-unit-files poweroff reboot rescue show-environment' _systemctl_caching_policy() { local _sysunits local -a oldcache # rebuild if cache is more than a day old oldcache=( "$1"(mh+1) ) (( $#oldcache )) && return 0 _sysunits=(${${(f)"$(__systemctl --all)"}%% *}) if (( $#_sysunits )); then for unit in $_sysunits; do [[ "$unit" -nt "$1" ]] && return 0 done fi return 1 } _unit_states() { local -a _states _states=("${(fo)$(__systemctl --state=help)}") _values -s , "${_states[@]}" } _unit_types() { local -a _types _types=("${(fo)$(__systemctl -t help)}") _values -s , "${_types[@]}" } _unit_properties() { if ( [[ ${+_sys_all_properties} -eq 0 ]] || _cache_invalid SYS_ALL_PROPERTIES$_sys_service_mgr ) || ! _retrieve_cache SYS_ALL_PROPERTIES$_sys_service_mgr; then _sys_all_properties=( ${${(M)${(f)"$(/usr/lib/systemd/systemd --dump-bus-properties)"}}} ) _store_cache SYS_ALL_PROPERTIES$_sys_service_mgr _sys_all_properties fi _values -s , "${_sys_all_properties[@]}" } _job_modes() { local -a _modes _modes=(fail replace replace-irreversibly isolate ignore-dependencies ignore-requirements flush) _values -s , "${_modes[@]}" } (( $+functions[_systemctl_check_inhibitors] )) || _systemctl_check_inhibitors() { local -a _modes _modes=(auto yes no) _values -s , "${_modes[@]}" } # Build arguments for "systemctl" to be used in completion. local -a _modes; _modes=("--user" "--system") # Use the last mode (they are exclusive and the last one is used). local _sys_service_mgr=${${words:*_modes}[(R)(${(j.|.)_modes})]} _arguments -s \ {-h,--help}'[Show help]' \ '--version[Show package version]' \ {-t+,--type=}'[List only units of a particular type]:unit type:_unit_types' \ '--state=[Display units in the specified state]:unit state:_unit_states' \ '--job-mode=[Specify how to deal with other jobs]:mode:_job_modes' \ {-p+,--property=}'[Show only properties by specific name]:unit property:_unit_properties' \ {-a,--all}'[Show all units/properties, including dead/empty ones]' \ '--reverse[Show reverse dependencies]' \ '--after[Show units ordered after]' \ '--before[Show units ordered before]' \ {-l,--full}"[Don't ellipsize unit names on output]" \ '--show-types[When showing sockets, show socket type]' \ '--check-inhibitors[Specify if inhibitors should be checked]:mode:_systemctl_check_inhibitors' \ {-q,--quiet}'[Suppress output]' \ '--no-block[Do not wait until operation finished]' \ '--no-legend[Do not print a legend, i.e. the column headers and the footer with hints]' \ '--no-pager[Do not pipe output into a pager]' \ '--system[Connect to system manager]' \ '--user[Connect to user service manager]' \ "--no-wall[Don't send wall message before halt/power-off/reboot]" \ '--global[Enable/disable/mask unit files globally]' \ "--no-reload[When enabling/disabling unit files, don't reload daemon configuration]" \ '--no-ask-password[Do not ask for system passwords]' \ '--kill-who=[Who to send signal to]:killwho:(main control all)' \ {-s+,--signal=}'[Which signal to send]:signal:_signals' \ {-f,--force}'[When enabling unit files, override existing symlinks. When shutting down, execute action immediately]' \ '--root=[Enable/disable/mask unit files in the specified root directory]:directory:_directories' \ '--runtime[Enable/disable/mask unit files only temporarily until next reboot]' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-P,--privileged}'[Acquire privileges before execution]' \ {-n+,--lines=}'[Journal entries to show]:number of entries' \ {-o+,--output=}'[Change journal output mode]:modes:_sd_outputmodes' \ '--firmware-setup[Tell the firmware to show the setup menu on next boot]' \ '--plain[When used with list-dependencies, print output as a list]' \ '--failed[Show failed units]' \ '*::systemctl command:_systemctl_command' site-functions/_localectl 0000644 00000007001 15204002235 0011531 0 ustar 00 #compdef localectl # SPDX-License-Identifier: LGPL-2.1+ _localectl_set-locale() { local -a _locales locale_fields locale_fields=(LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME \ LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER \ LC_NAME LC_ADDRESS LC_TELEPHONE \ LC_MEASUREMENT LC_IDENTIFICATION) # LC_ALL is omitted on purpose local expl suf _locales=( ${(f)"$(_call_program locales "$service" list-locales)"} ) compset -P1 '*=' if [[ -prefix 1 *\= ]]; then local conf=${PREFIX%%\=*} _wanted locales expl "locales configs" \ _combination localeconfs confs=$conf locales "$@" - else compadd -S '=' $locale_fields fi } _localectl_set-keymap() { local -a _keymaps if (( CURRENT <= 3 )); then _keymaps=( ${(f)"$(_call_program locales "$service" list-keymaps)"} ) _describe keymaps _keymaps else _message "no more options" fi } _localectl_set-x11-keymap() { if (( $+commands[pkg-config] )); then local -a _file _layout _model _variant _options local _xorg_lst _xorg_lst=${"$($commands[pkg-config] xkeyboard-config --variable=xkb_base)"} _file=( ${(ps:\n\!:)"$(<$_xorg_lst/rules/xorg.lst)"} ) _layout=( ${${${(M)${(f)_file[2]}:# *}# }%% *} ) _model=( ${${${(M)${(f)_file[1]}:# *}# }%% *} ) _variant=( ${${${(M)${(f)_file[3]}:# *}# }%% *} ) _options=( ${${${(M)${(f)_file[4]}:# *}# }%% *} ) #_layout=( ${(f)"$( echo $_file[1] | awk '/^ / {print $1}' )"} ) #_model=( ${(f)"$(echo $_file[2] | awk '/^ / {print $1}')"} ) #_variant=( ${(f)"$(echo $_file[3] | awk '/^ / {print $1}')"} ) #_options=( ${(f)"$(echo ${_file[4]//:/\\:} | awk '/^ / {print $1}')"} ) case $CURRENT in 2) _describe layouts _layout ;; 3) _describe models _model;; 4) _describe variants _variant;; 5) _describe options _options;; *) _message "no more options" esac fi } _localectl_command() { local -a _localectl_cmds _localectl_cmds=( 'status:Show current locale settings' 'set-locale:Set system locale' 'list-locales:Show known locales' 'set-keymap:Set virtual console keyboard mapping' 'list-keymaps:Show known virtual console keyboard mappings' 'set-x11-keymap:Set X11 keyboard mapping' 'list-x11-keymap-models:Show known X11 keyboard mapping models' 'list-x11-keymap-layouts:Show known X11 keyboard mapping layouts' 'list-x11-keymap-variants:Show known X11 keyboard mapping variants' 'list-x11-keymap-options:Show known X11 keyboard mapping options' ) if (( CURRENT == 1 )); then _describe -t commands 'localectl command' _localectl_cmds else local curcontext="$curcontext" cmd="${${_localectl_cmds[(r)$words[1]:*]%%:*}}" if (( $+functions[_localectl_$cmd] )); then _localectl_$cmd else _message "unknown localectl command: $words[1]" fi fi } _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ "--no-convert[Don't convert keyboard mappings]" \ '--no-pager[Do not pipe output into a pager]' \ '--no-ask-password[Do not prompt for password]' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machine' \ '*::localectl commands:_localectl_command' site-functions/_sd_unit_files 0000644 00000000377 15204002235 0012427 0 ustar 00 #autoload # SPDX-License-Identifier: LGPL-2.1+ _sd_unit_files() { local files expl files=( '*:files:->files' ) _description files expl 'unit file' _files "$expl[@]" -g '*.(automount|device|mount|path|service|socket|swap|target|timer)' } site-functions/_sd_outputmodes 0000644 00000000441 15204002235 0012646 0 ustar 00 #autoload # SPDX-License-Identifier: LGPL-2.1+ local -a _output_opts _output_opts=(short short-full short-iso short-iso-precise short-precise short-monotonic short-unix verbose export json json-pretty json-sse cat with-unit) _describe -t output 'output mode' _output_opts || compadd "$@" site-functions/_systemd-delta 0000644 00000001064 15204002235 0012351 0 ustar 00 #compdef systemd-delta # SPDX-License-Identifier: LGPL-2.1+ _delta_type() { local -a _delta_types _delta_types=(masked equivalent redirected overridden unchanged) _values -s , "${_delta_types[@]}" } _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--no-pager[Do not pipe output into a pager]' \ '--diff=[Show a diff when overridden files differ]:boolean:(1 0)' \ {-t+,--type=}'[Only display a selected set of override types]:types:_delta_type' \ ':SUFFIX:(tmpfiles.d sysctl.d systemd/system)' site-functions/_systemd-run 0000644 00000006100 15204002235 0012060 0 ustar 00 #compdef systemd-run # SPDX-License-Identifier: LGPL-2.1+ __systemctl() { local -a _modes _modes=("--user" "--system") systemctl ${words:*_modes} --full --no-legend --no-pager "$@" 2>/dev/null } __get_slices () { __systemctl list-units --all -t slice \ | { while read -r a b; do echo $a; done; }; } __slices () { local -a _slices _slices=(${(fo)"$(__get_slices)"}) typeset -U _slices _describe 'slices' _slices } _arguments \ {-h,--help}'[Show help message]' \ '--version[Show package version]' \ '--user[Run as user unit]' \ {-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ '--scope[Run this as scope rather than service]' \ '--unit=[Run under the specified unit name]:unit name' \ {-p+,--property=}'[Set unit property]:NAME=VALUE:(( \ CPUAccounting= MemoryAccounting= BlockIOAccounting= SendSIGHUP= \ SendSIGKILL= MemoryLimit= CPUShares= BlockIOWeight= User= Group= \ DevicePolicy= KillMode= DeviceAllow= BlockIOReadBandwidth= \ BlockIOWriteBandwidth= BlockIODeviceWeight= Nice= Environment= \ KillSignal= LimitCPU= LimitFSIZE= LimitDATA= LimitSTACK= \ LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC= \ LimitMEMLOCK= LimitLOCKS= LimitSIGPENDING= LimitMSGQUEUE= \ LimitNICE= LimitRTPRIO= LimitRTTIME= PrivateTmp= PrivateDevices= \ PrivateNetwork= NoNewPrivileges= WorkingDirectory= RootDirectory= \ TTYPath= SyslogIdentifier= SyslogLevelPrefix= SyslogLevel= \ SyslogFacility= TimerSlackNSec= OOMScoreAdjust= ReadWritePaths= \ ReadOnlyPaths= InaccessiblePaths= EnvironmentFile= \ ProtectSystem= ProtectHome= RuntimeDirectory= PassEnvironment= \ ))' \ '--description=[Description for unit]:description' \ '--slice=[Run in the specified slice]:slices:__slices' \ {-r,--remain-after-exit}'[Leave service around until explicitly stopped]' \ '--send-sighup[Send SIGHUP when terminating]' \ '--service-type=[Service type]:type:(simple forking oneshot dbus notify idle)' \ '--uid=[Run as system user]:user:_users' \ '--gid=[Run as system group]:group:_groups' \ '--nice=[Nice level]:nice level' \ '--setenv=[Set environment]:NAME=VALUE' \ '--on-active=[Run after SEC seconds]:SEC' \ '--on-boot=[Run SEC seconds after machine was booted up]:SEC' \ '--on-startup=[Run SEC seconds after systemd was first started]:SEC' \ '--on-unit-active=[Run SEC seconds after the last activation]:SEC' \ '--on-unit-inactive=[Run SEC seconds after the last deactivation]:SEC' \ '--on-calendar=[Realtime timer]:SPEC' \ '--timer-property=[Set timer unit property]:NAME=VALUE' \ '--wait=[Wait until service stopped again]' \ '*::command:_command' site-functions/_coredumpctl 0000644 00000003056 15204002235 0012116 0 ustar 00 #compdef coredumpctl # SPDX-License-Identifier: LGPL-2.1+ _coredumpctl_command(){ local -a _coredumpctl_cmds _coredumpctl_cmds=( 'list:List available coredumps' 'info:Show detailed information about one or more coredumps' 'dump:Print coredump to stdout' 'gdb:Start gdb on a coredump' ) if (( CURRENT == 1 )); then _describe -t commands 'coredumpctl command' _coredumpctl_cmds else local curcontext="$curcontext" local -a _dumps cmd="${${_coredumpctl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then _dumps=( "${(f)$(coredumpctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $4,$0}' 2>/dev/null)}" ) if [[ -n "$_dumps" ]]; then _describe -V -t pids 'coredumps' _dumps else _message "no coredumps" fi else _message "no more options" fi fi } _arguments \ {-o+,--output=}'[Write output to FILE]:output file:_files' \ {-F+,--field=}'[Show field in list output]:field' \ '-1[Show information about most recent entry only]' \ {-S,--since}'[Print entries since the specified date]' \ {-U,--until}'[Print entries until the specified date]' \ {-r,--reverse}'[Show the newest entries first]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-legend[Do not print the column headers]' \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '*::coredumpctl commands:_coredumpctl_command' site-functions/_systemd-inhibit 0000644 00000002045 15204002235 0012706 0 ustar 00 #compdef systemd-inhibit # SPDX-License-Identifier: LGPL-2.1+ _systemd_inhibit_command(){ if (( CURRENT == 1 )); then compset -q _normal else local n=${words[(b:2:i)[^-]*]} if (( n <= CURRENT )); then compset -n $n _alternative \ 'files:file:_files' \ 'commands:command:_normal' && return 0 fi _default fi } _inhibit_what() { local _inhibit _inhibit=(shutdown sleep idle handle-power-key handle-suspend-key handle-hibernate-key handle-lid-switch) _values -s : "${_inhibit[@]}" } _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--what=[Operations to inhibit]:options:_inhibit_what' \ '--who=[A descriptive string who is inhibiting]:who is inhibiting:' \ '--why=[A descriptive string why is being inhibited]:reason for the lock:' \ '--mode=[One of block or delay]:lock mode:( block delay )' \ '--list[List active inhibitors]' \ '*:commands:_systemd_inhibit_command' site-functions/_systemd-analyze 0000644 00000005771 15204002235 0012734 0 ustar 00 #compdef systemd-analyze # SPDX-License-Identifier: LGPL-2.1+ _systemd_analyze_log-level() { local -a _levels _levels=(debug info notice warning err crit alert emerg) _describe -t level 'logging level' _levels || compadd "$@" } _systemd_analyze_log-target() { local -a _targets _targets=(console journal kmsg journal-or-kmsg null) _describe -t target 'logging target' _targets || compadd "$@" } _systemd_analyze_verify() { _sd_unit_files } _systemd_analyze_service-watchdogs() { local -a _states _states=(on off) _describe -t state 'state' _states || compadd "$@" } _systemd_analyze_command(){ local -a _systemd_analyze_cmds # Descriptions taken from systemd-analyze --help. _systemd_analyze_cmds=( 'time:Print time spent in the kernel before reaching userspace' 'blame:Print list of running units ordered by time to init' 'critical-chain:Print a tree of the time critical chain of units' 'plot:Output SVG graphic showing service initialization' 'dot:Dump dependency graph (in dot(1) format)' 'dump:Dump server status' 'unit-paths:List unit load paths' 'log-level:Get/set systemd log threshold' 'log-target:Get/set systemd log target' 'service-watchdogs:Get/set service watchdog status' 'syscall-filter:List syscalls in seccomp filter' 'verify:Check unit files for correctness' 'calendar:Validate repetitive calendar time events' ) if (( CURRENT == 1 )); then _describe "options" _systemd_analyze_cmds else local curcontext="$curcontext" cmd="${${_systemd_analyze_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then if (( $+functions[_systemd_analyze_$cmd] )) && (( CURRENT == 2 )); then _systemd_analyze_$cmd else _message "no more options" fi else _message "unknown systemd-analyze command: $words[1]" fi fi } _arguments \ {-h,--help}'[Show help text]' \ '--version[Show package version]' \ '--system[Operate on system systemd instance]' \ '--user[Operate on user systemd instance]' \ '--global[Show global user instance config]' \ '--no-pager[Do not pipe output into a pager]' \ '--man=[Do (not) check for existence of man pages]:boolean:(1 0)' \ '--order[When generating graph for dot, show only order]' \ '--require[When generating graph for dot, show only requirement]' \ '--fuzz=[When printing the tree of the critical chain, print also services, which finished TIMESPAN earlier, than the latest in the branch]:TIMESPAN' \ '--from-pattern=[When generating a dependency graph, filter only origins]:GLOB' \ '--to-pattern=[When generating a dependency graph, filter only destinations]:GLOB' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machine:_sd_machines' \ '*::systemd-analyze commands:_systemd_analyze_command' site-functions/_sd_machines 0000644 00000000543 15204002235 0012050 0 ustar 00 #autoload # SPDX-License-Identifier: LGPL-2.1+ __get_machines () { machinectl --full --no-legend --no-pager list | {while read -r a b; do echo $a; done;}; } local -a _machines _machines=("${(fo)$(__get_machines)}") typeset -U _machines if [[ -n "$_machines" ]]; then _describe 'machines' _machines else _message 'no machines' fi site-functions/_timedatectl 0000644 00000003772 15204002235 0012101 0 ustar 00 #compdef timedatectl # SPDX-License-Identifier: LGPL-2.1+ _timedatectl_set-timezone(){ local -a _timezones _timezones=( ${(f)"$(_call_program timezones "${service}" list-timezones)"} ) compadd "$_timezones[@]" } _timedatectl_set-time(){ _message "YYYY-MM-DD HH:MM:SS" } _timedatectl_set-local-rtc(){ local -a _options _options=( '0:Maintain RTC in universal time' '1:Maintain RTC in local time' ) _describe options _options } _timedatectl_set-ntp(){ local -a _options _options=( '0:Disable NTP based network time configuration' '1:Enable NTP based network time configuration' ) _describe options _options } _timedatectl_command(){ local -a _timedatectl_cmds _timedatectl_cmds=( 'status:Show current time settings' 'set-time:Set system time' 'set-timezone:Set system timezone' 'list-timezones:Show known timezones' 'set-local-rtc:Control whether RTC is in local time' 'set-ntp:Control whether NTP is enabled' ) if (( CURRENT == 1 )); then _describe -t commands 'timedatectl command' _timedatectl_cmds else local curcontext="$curcontext" cmd="${${_timedatectl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then if (( $+functions[_timedatectl_$cmd] )); then _timedatectl_$cmd else _message "no more options" fi else _message "unknown timedatectl command: $words[1]" fi fi } _arguments -s \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--adjust-system-clock[Adjust system clock when changing local RTC mode]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-ask-password[Do not prompt for password]' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ '*::timedatectl commands:_timedatectl_command' site-functions/_systemd-tmpfiles 0000644 00000001340 15204002235 0013100 0 ustar 00 #compdef systemd-tmpfiles # SPDX-License-Identifier: LGPL-2.1+ _arguments \ {-h,--help}'[Show help]' \ '--version[Show package version]' \ '--create[Create, set ownership/permissions based on the config files.]' \ '--clean[Clean up all files and directories with an age parameter configured.]' \ '--remove[All files and directories marked with r, R in the configuration files are removed.]' \ '--boot[Execute actions only safe at boot]' \ '--prefix=[Only apply rules that apply to paths with the specified prefix.]' \ '--exclude-prefix=[Ignore rules that apply to paths with the specified prefix.]' \ '--root=[Operate on an alternate filesystem root]:directory:_directories' \ '*::files:_files' site-functions/_udevadm 0000644 00000013555 15204002235 0011227 0 ustar 00 #compdef udevadm # SPDX-License-Identifier: LGPL-2.1+ _udevadm_info(){ _arguments \ '--query=[Query the database for specified type of device data. It needs the --path or --name to identify the specified device.]:type:(name symlink path property all)' \ '--path=[The devpath of the device to query.]:sys files:_files -P /sys/ -W /sys' \ '--name=[The name of the device node or a symlink to query]:device files:_files -P /dev/ -W /dev' \ '--root[Print absolute paths in name or symlink query.]' \ '--attribute-walk[Print all sysfs properties of the specified device that can be used in udev rules to match the specified device]' \ '--export[Print output as key/value pairs.]' \ '--export-prefix=[Add a prefix to the key name of exported values.]:prefix' \ '--device-id-of-file=[Print major/minor numbers of the underlying device, where the file lives on.]:files:_udevadm_mounts' \ '--export-db[Export the content of the udev database.]' \ '--cleanup-db[Cleanup the udev database.]' } _udevadm_trigger(){ _arguments \ '--verbose[Print the list of devices which will be triggered.]' \ '--dry-run[Do not actually trigger the event.]' \ '--type=[Trigger a specific type of devices.]:types:(devices subsystems failed)' \ '--action=[Type of event to be triggered.]:actions:(add change remove)' \ '--subsystem-match=[Trigger events for devices which belong to a matching subsystem.]' \ '--subsystem-nomatch=[Do not trigger events for devices which belong to a matching subsystem.]' \ '--attr-match=attribute=[Trigger events for devices with a matching sysfs attribute.]' \ '--attr-nomatch=attribute=[Do not trigger events for devices with a matching sysfs attribute.]' \ '--property-match=[Trigger events for devices with a matching property value.]' \ '--tag-match=property[Trigger events for devices with a matching tag.]' \ '--sysname-match=[Trigger events for devices with a matching sys device name.]' \ '--parent-match=[Trigger events for all children of a given device.]' } _udevadm_settle(){ _arguments \ '--timeout=[Maximum number of seconds to wait for the event queue to become empty.]' \ '--seq-start=[Wait only for events after the given sequence number.]' \ '--seq-end=[Wait only for events before the given sequence number.]' \ '--exit-if-exists=[Stop waiting if file exists.]:files:_files' \ '--quiet[Do not print any output, like the remaining queue entries when reaching the timeout.]' \ '--help[Print help text.]' } _udevadm_control(){ _arguments \ '--exit[Signal and wait for systemd-udevd to exit.]' \ '--log-priority=[Set the internal log level of systemd-udevd.]:priorities:(err info debug)' \ '--stop-exec-queue[Signal systemd-udevd to stop executing new events. Incoming events will be queued.]' \ '--start-exec-queue[Signal systemd-udevd to enable the execution of events.]' \ '--reload[Signal systemd-udevd to reload the rules files and other databases like the kernel module index.]' \ '--property=[Set a global property for all events.]' \ '--children-max=[Set the maximum number of events.]' \ '--timeout=[The maximum number of seconds to wait for a reply from systemd-udevd.]' \ '--help[Print help text.]' } _udevadm_monitor(){ _arguments \ '--kernel[Print the kernel uevents.]' \ '--udev[Print the udev event after the rule processing.]' \ '--property[Also print the properties of the event.]' \ '--subsystem-match=[Filter events by subsystem/\[devtype\].]' \ '--tag-match=[Filter events by property.]' \ '--help[Print help text.]' } _udevadm_test(){ _arguments \ '--action=[The action string.]:actions:(add change remove)' \ '--subsystem=[The subsystem string.]' \ '--help[Print help text.]' \ '*::devpath:_files -P /sys/ -W /sys' } _udevadm_test-builtin(){ if (( CURRENT == 2 )); then _arguments \ '--help[Print help text]' \ '*::builtins:(blkid btrfs hwdb input_id net_id net_setup_link kmod path_id usb_id uaccess)' elif (( CURRENT == 3 )); then _arguments \ '--help[Print help text]' \ '*::syspath:_files -P /sys -W /sys' else _arguments \ '--help[Print help text]' fi } _udevadm_mounts(){ local dev_tmp dpath_tmp mp_tmp mline tmp=( "${(@f)$(< /proc/self/mounts)}" ) dev_tmp=( "${(@)${(@)tmp%% *}:#none}" ) mp_tmp=( "${(@)${(@)tmp#* }%% *}" ) local MATCH mp_tmp=("${(@q)mp_tmp//(#m)\\[0-7](#c3)/${(#)$(( 8#${MATCH[2,-1]} ))}}") dpath_tmp=( "${(@Mq)dev_tmp:#/*}" ) dev_tmp=( "${(@q)dev_tmp:#/*}" ) _alternative \ 'device-paths: device path:compadd -a dpath_tmp' \ 'directories:mount point:compadd -a mp_tmp' } _udevadm_command(){ local -a _udevadm_cmds _udevadm_cmds=( 'info:query sysfs or the udev database' 'trigger:request events from the kernel' 'settle:wait for the event queue to finish' 'control:control the udev daemon' 'monitor:listen to kernel and udev events' 'test:test an event run' 'test-builtin:test a built-in command' ) if ((CURRENT == 1)); then _describe -t commands 'udevadm commands' _udevadm_cmds else local curcontext="$curcontext" cmd="${${_udevadm_cmds[(r)$words[1]:*]%%:*}}" if (($#cmd)); then if (( $+functions[_udevadm_$cmd] )); then _udevadm_$cmd else _message "no options for $cmd" fi else _message "no more options" fi fi } _arguments \ '--debug[Print debug messages to stderr]' \ '--version[Print version number]' \ '--help[Print help text]' \ '*::udevadm commands:_udevadm_command' site-functions/_kernel-install 0000644 00000001213 15204002235 0012512 0 ustar 00 #compdef kernel-install # SPDX-License-Identifier: LGPL-2.1+ _images(){ if [[ "$words[2]" == "remove" ]]; then _message 'No more options' else _path_files -W /boot/ -P /boot/ -g "vmlinuz-*" fi } _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:_kernels' \ '3::kernel images:_images' #vim: set ft=zsh sw=4 ts=4 et site-functions/_systemd 0000644 00000007377 15204002235 0011277 0 ustar 00 #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+ 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=}'[Set syslog identifier.]:syslog identifier:' \ {-p+,--priority=}'[Set priority value.]:value:({0..7})' \ '--level-prefix=[Control whether level prefix shall be parsed.]:boolean:(1 0)' \ ':Message' ;; systemd-cgls) _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--no-pager[Do not pipe output into a pager]' \ {-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=}'[Specify delay]:delay:' \ {-n+,--iterations=}'[Run for N iterations before exiting]:number of iterations:' \ {-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}'[Only detect whether we are run in a container]' \ {-v,--vm}'[Only detect whether we are run in a VM]' \ {-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 #vim: set ft=zsh sw=4 ts=4 et site-functions/_loginctl 0000644 00000013254 15204002235 0011411 0 ustar 00 #compdef loginctl # SPDX-License-Identifier: LGPL-2.1+ _loginctl_all_sessions() { local session description loginctl --no-legend list-sessions | while read -r session description; do _sys_all_sessions+=( "$session" ) _sys_all_sessions_descr+=( "${session}:$description" ) done } _loginctl_all_users() { local uid description loginctl --no-legend list-users | while read -r uid description; do _sys_all_users+=( "$uid" ) _sys_all_users_descr+=( "${uid}:$description" ) done } _loginctl_all_seats() { local seat description loginctl --no-legend list-seats | while read -r seat description; do _sys_all_seats+=( "$seat" ) _sys_all_seats_descr+=( "${seat}:$description" ) done } local fun # Completion functions for SESSIONS for fun in session-status show-session activate lock-session unlock-session terminate-session kill-session ; do (( $+functions[_loginctl_$fun] )) || _loginctl_$fun() { local -a _sys_all_sessions{,_descr} _loginctl_all_sessions for _ignore in $words[2,-1]; do _sys_all_sessions[(i)$_ignore]=() _sys_all_sessions_descr[(i)$_ignore:*]=() done if zstyle -T ":completion:${curcontext}:systemd-sessions" verbose; then _describe -t systemd-sessions session _sys_all_sessions_descr _sys_all_sessions "$@" else local expl _wanted systemd-sessions expl session compadd "$@" -a _sys_all_sessions fi } done # Completion functions for USERS for fun in user-status show-user enable-linger disable-linger terminate-user kill-user ; do (( $+functions[_loginctl_$fun] )) || _loginctl_$fun() { local -a _sys_all_users{,_descr} zstyle -a ":completion:${curcontext}:users" users _sys_all_users if ! (( $#_sys_all_users )); then _loginctl_all_users fi for _ignore in $words[2,-1]; do _sys_all_users[(i)$_ignore]=() _sys_all_users_descr[(i)$_ignore:*]=() done # using the common tag `users' here, not rolling our own `systemd-users' tag if zstyle -T ":completion:${curcontext}:users" verbose; then _describe -t users user ${_sys_all_users_descr:+_sys_all_users_descr} _sys_all_users "$@" else local expl _wanted users expl user compadd "$@" -a _sys_all_users fi } done # Completion functions for SEATS (( $+functions[_loginctl_seats] )) || _loginctl_seats() { local -a _sys_all_seats{,_descr} _loginctl_all_seats for _ignore in $words[2,-1]; do _sys_all_seats[(i)$_ignore]=() _sys_all_seats_descr[(i)$_ignore:*]=() done if zstyle -T ":completion:${curcontext}:systemd-seats" verbose; then _describe -t systemd-seats seat _sys_all_seats_descr _sys_all_seats "$@" else local expl _wanted systemd-seats expl seat compadd "$@" -a _sys_all_seats fi } for fun in seat-status show-seat terminate-seat ; do (( $+functions[_loginctl_$fun] )) || _loginctl_$fun() { _loginctl_seats } done # Completion functions for ATTACH (( $+functions[_loginctl_attach] )) || _loginctl_attach() { _arguments -w -C -S -s \ ':seat:_loginctl_seats' \ '*:device:_files' } # no loginctl completion for: # [STANDALONE]='list-sessions list-users list-seats flush-devices' (( $+functions[_loginctl_command] )) || _loginctl_command() { local -a _loginctl_cmds _loginctl_cmds=( "list-sessions:List sessions" "session-status:Show session status" "show-session:Show properties of one or more sessions" "activate:Activate a session" "lock-session:Screen lock one or more sessions" "unlock-session:Screen unlock one or more sessions" "lock-sessions:Screen lock all current sessions" "unlock-sessions:Screen unlock all current sessions" "terminate-session:Terminate one or more sessions" "kill-session:Send signal to processes of a session" "list-users:List users" "user-status:Show user status" "show-user:Show properties of one or more users" "enable-linger:Enable linger state of one or more users" "disable-linger:Disable linger state of one or more users" "terminate-user:Terminate all sessions of one or more users" "kill-user:Send signal to processes of a user" "list-seats:List seats" "seat-status:Show seat status" "show-seat:Show properties of one or more seats" "attach:Attach one or more devices to a seat" "flush-devices:Flush all device associations" "terminate-seat:Terminate all sessions on one or more seats" ) if (( CURRENT == 1 )); then _describe -t commands 'loginctl command' _loginctl_cmds || compadd "$@" else local curcontext="$curcontext" _ignore cmd="${${_loginctl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then curcontext="${curcontext%:*:*}:loginctl-${cmd}:" _call_function ret _loginctl_$cmd || _message 'no more arguments' else _message "unknown loginctl command: $words[1]" fi return ret fi } _arguments -s \ {-h,--help}'[Show help]' \ '--version[Show package version]' \ \*{-p+,--property=}'[Show only properties by this name]:unit property' \ {-a,--all}'[Show all properties, including empty ones]' \ '--kill-who=[Who to send signal to]:killwho:(main control all)' \ {-s+,--signal=}'[Which signal to send]:signal:_signals' \ {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ {-M+,--machine=}'[Operate on local container]:machine:_sd_machines' \ {-l,--full}'[Do not ellipsize output]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-legend[Do not show the headers and footers]' \ '--no-ask-password[Do not ask for system passwords]' \ {-n+,--lines=}'[Number of journal entries to show]' \ {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \ '*::loginctl command:_loginctl_command' site-functions/_journalctl 0000644 00000013527 15204002235 0011756 0 ustar 00 #compdef journalctl # SPDX-License-Identifier: LGPL-2.1+ _list_fields() { local -a journal_fields journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} _{P,U,G}ID _COMM _EXE _CMDLINE _AUDIT_{SESSION,LOGINUID} _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} _SYSTEMD_USER_UNIT USER_UNIT _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT _KERNEL_{DEVICE,SUBSYSTEM} _UDEV_{SYSNAME,DEVNODE,DEVLINK} __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) case $_jrnl_none in yes) _values -s '=' 'possible fields' \ "${journal_fields[@]}:value:_journal_fields ${words[CURRENT]%%=*}" ;; *) _describe 'possible fields' journal_fields ;; esac } _journal_none() { local -a _commands _files _jrnl_none # Setting use-cache will slow this down considerably _commands=( ${"$(_call_program commands "$service $_sys_service_mgr -F _EXE" 2>/dev/null)"} ) _jrnl_none='yes' _alternative : \ 'files:/dev files:_files -W /dev -P /dev/' \ "commands:commands:($_commands[@])" \ 'fields:fields:_list_fields' } _journal_fields() { local -a _fields cmd cmd=("journalctl $_sys_service_mgr" "-F ${@[-1]}" "2>/dev/null" ) _fields=$(_call_program fields $cmd[@]) _fields=${_fields//'\'/'\\'} _fields=${_fields//':'/'\:'} _fields=( ${(f)_fields} ) typeset -U _fields _describe 'possible values' _fields } _journal_boots() { local -a _bootid _previousboots _bootid=( ${(f)"$(_call_program bootid "$service -F _BOOT_ID")"} ) _previousboots=( -{1..${#_bootid}} ) _alternative : \ "offsets:boot offsets:compadd -a '_previousboots[1,-2]'" \ "bootid:boot ids:compadd -a _bootid" } # Build arguments for "journalctl" to be used in completion. # Use both --user and --system modes, they are not exclusive. local -a _modes; _modes=(--user --system) local -a _modes_with_arg; _modes_with_arg=(--directory -D --file -M --machine --root) typeset -a _sys_service_mgr local w k v i=0 n=$#words while (( i++ < n )); do w=$words[$i] if (( $_modes[(I)$w] )); then _sys_service_mgr+=($w) else # Handle options with arguments. "--key=value" and "--key value". k=${w%%=*} if (( ${_modes_with_arg[(I)$k]} )); then v=${w#*=} if [[ "$k" != "$w" ]]; then # "--key=value" style. _sys_service_mgr+=($w) else # "--key value" style. _sys_service_mgr+=($w ${words[((++i))]}) fi fi fi done _arguments -s \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--no-pager[Do not pipe output into a pager]' \ {-l,--full}'[Show long fields in full]' \ {-a,--all}'[Show all fields, including long and unprintable]' \ {-f,--follow}'[Follow journal]' \ {-e,--pager-end}'[Jump to the end of the journal in the pager]' \ {-n+,--lines=}'[Number of journal entries to show]:integer' \ '--no-tail[Show all lines, even in follow mode]' \ {-r,--reverse}'[Reverse output]' \ {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \ {-x,--catalog}'[Show explanatory texts with each log line]' \ {-q,--quiet}"[Don't show privilege warning]" \ {-m,--merge}'[Show entries from all available journals]' \ {-b+,--boot=}'[Show data only from the specified boot or offset]::boot id or offset:_journal_boots' \ '--list-boots[List boots ordered by time]' \ {-k,--dmesg}'[Show only kernel messages from the current boot]' \ {-u+,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \ '--user-unit=[Show data only from the specified user session unit]:units:_journal_fields USER_UNIT' \ {-p+,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \ {-t+,--identifier=}'[Show only messages with the specified syslog identifier]:identifier:_journal_fields SYSLOG_IDENTIFIER' \ {-c+,--cursor=}'[Start showing entries from the specified cursor]:cursors:_journal_fields __CURSORS' \ '--after-cursor=[Start showing entries from after the specified cursor]:cursors:_journal_fields __CURSORS' \ '--since=[Start showing entries on or newer than the specified date]:YYYY-MM-DD HH\:MM\:SS' \ '--until=[Stop showing entries on or older than the specified date]:YYYY-MM-DD HH\:MM\:SS' \ {-F,--field=}'[List all values a certain field takes]:Fields:_list_fields' \ '--system[Show system and kernel messages]' \ '--user[Show messages from user services]' \ '(--directory -D -M --machine --root --file)'{-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ '(--directory -D -M --machine --root --file)'{-D+,--directory=}'[Show journal files from directory]:directories:_directories' \ '(--directory -D -M --machine --root --file)--root=[Operate on catalog hierarchy under specified directory]:directories:_directories' \ '(--directory -D -M --machine --root)*--file=[Operate on specified journal files]:file:_files' \ '--new-id128[Generate a new 128 Bit ID]' \ '--header[Show journal header information]' \ '--disk-usage[Show total disk usage]' \ '--list-catalog[List messages in catalog]' \ '--dump-catalog[Dump messages in catalog]' \ '--update-catalog[Update binary catalog database]' \ '--setup-keys[Generate a new FSS key pair]' \ '--force[Force recreation of the FSS keys]' \ '--interval=[Time interval for changing the FSS sealing key]:time interval' \ '--verify[Verify journal file consistency]' \ '--verify-key=[Specify FSS verification key]:FSS key' \ '*::default: _journal_none' site-functions/_libinput 0000644 00000016760 15204002235 0011431 0 ustar 00 #compdef libinput (( $+functions[_libinput_commands] )) || _libinput_commands() { local -a commands commands=( "list-devices:List all devices recognized by libinput" "debug-events:Print all events as seen by libinput" "debug-gui:Show a GUI to visualize libinput's events" "debug-tablet:Show tablet axis and button values" "measure:Measure various properties of devices" "analyze:Analyze device data" "record:Record the events from a device" "replay:Replay the events from a device" ) _describe -t commands 'command' commands } __all_seats() { # Obviously only works with logind local -a seats seats=${(f)"$(loginctl --no-legend --no-pager list-seats 2>/dev/null)"} if [[ -z $seats ]]; then # Can always offer seat0, even if we can't enumerate the seats compadd "$@" - seat0 else compadd "$@" - $seats fi } (( $+functions[_libinput_list-devices] )) || _libinput_list-devices() { _arguments \ '--help[Show help and exit]' \ '--version[show version information and exit]' } (( $+functions[_libinput_debug-events] )) || _libinput_debug-events() { _arguments \ '--help[Show debug-events help and exit]' \ '--quiet[Only print libinput messages and nothing from this tool]' \ '--verbose[Use verbose output]' \ '--show-keycodes[Make all keycodes visible]' \ '--grab[Exclusively grab all opened devices]' \ '--device=[Use the given device with the path backend]:device:_files -W /dev/input/ -P /dev/input/' \ '--udev=[Listen for notifications on the given seat]:seat:__all_seats' \ '--apply-to=[Apply configuration options where the device name matches the pattern]:pattern' \ '--disable-sendevents=[Disable send-events option for the devices matching the pattern]:pattern' \ '--set-click-method=[Set the desired click method]:click-method:(none clickfinger buttonareas)' \ '--set-scroll-method=[Set the desired scroll method]:scroll-method:(none twofinger edge button)' \ '--set-scroll-button=[Set the button to the given button code]' \ '--set-profile=[Set pointer acceleration profile]:accel-profile:(adaptive flat)' \ '--set-speed=[Set pointer acceleration speed (within range \[-1, 1\])]' \ '--set-tap-map=[Set button mapping for tapping]:tap-map:(( \ lrm\:2-fingers\ right-click\ /\ 3-fingers\ middle-click \ lmr\:2-fingers\ middle-click\ /\ 3-fingers\ right-click \ ))' \ + '(tap-to-click)' \ '--enable-tap[Enable tap-to-click]' \ '--disable-tap[Disable tap-to-click]' \ + '(drag)' \ '--enable-drag[Enable tap-and-drag]' \ '--disable-drag[Disable tap-and-drag]' \ + '(drag-lock)' \ '--enable-drag-lock[Enable drag-lock]' \ '--disable-drag-lock[Disable drag-lock]' \ + '(natural-scrolling)' \ '--enable-natural-scrolling[Enable natural scrolling]' \ '--disable-natural-scrolling[Disable natural scrolling]' \ + '(left-handed)' \ '--enable-left-handed[Enable left handed button configuration]' \ '--disable-left-handed[Disable left handed button configuration]' \ + '(middlebutton)' \ '--enable-middlebutton[Enable middle button emulation]' \ '--disable-middlebutton[Disable middle button emulation]' \ + '(dwt)' \ '--enable-dwt[Enable disable-while-typing]' \ '--disable-dwt[Disable disable-while-typing]' } (( $+functions[_libinput_debug-gui] )) || _libinput_debug-gui() { _arguments \ '--help[Show debug-gui help and exit]' \ '--verbose[Use verbose output]' \ '--grab[Exclusively grab all opened devices]' \ '--device=[Use the given device with the path backend]:device:_files -W /dev/input/ -P /dev/input/' \ '--udev=[Listen for notifications on the given seat]:seat:_libinput_all_seats' } (( $+functions[_libinput_debug-tablet] )) || _libinput_debug-tablet() { _arguments \ '--help[Show debug-tablet help and exit]' \ '--device=[Use the given device with the path backend]:device:_files -W /dev/input/ -P /dev/input/' \ '--udev=[Use the first tablet device on the given seat]:seat:_libinput_all_seats' } (( $+functions[_libinput_measure] )) || _libinput_measure() { local curcontext=$curcontext state line ret=1 local features features=( "fuzz:Measure touch fuzz to avoid pointer jitter" "touch-size:Measure touch size and orientation" "touchpad-tap:Measure tap-to-click time" "touchpad-pressure:Measure touch pressure" ) _arguments -C \ '--help[Print help and exit]' \ ':feature:->feature' \ '*:: :->option-or-argument' case $state in (feature) _describe -t features 'feature' features ;; (option-or-argument) curcontext=${curcontext%:*:*}:libinput-measure-$words[1]: if ! _call_function ret _libinput_measure_$words[1]; then _message "unknown feature: $words[1]" fi ;; esac return ret } (( $+functions[_libinput_measure_fuzz] )) || _libinput_measure_fuzz() { _arguments \ '--help[Show help message and exit]' \ ':device:_files -W /dev/input/ -P /dev/input/' } (( $+functions[_libinput_measure_touch-size] )) || _libinput_measure_touch-size() { _arguments \ '--help[Show help message and exit]' \ '--touch-threshold=[Assume a touch pressure threshold of "down:up"]' \ '--palm-threshold=[Assume a palm threshold of N]' \ ':device:_files -W /dev/input/ -P /dev/input/' } (( $+functions[_libinput_measure_touchpad-pressure] )) || _libinput_measure_touchpad-pressure() { _arguments \ '--help[Show help message and exit]' \ '--touch-threshold=[Assume a touch pressure threshold of "down:up"]' \ '--palm-threshold=[Assume a palm threshold of N]' \ ':device:_files -W /dev/input/ -P /dev/input/' } (( $+functions[_libinput_measure_touchpad-tap] )) || _libinput_measure_touchpad-tap() { _arguments \ '--help[Show help message and exit]' \ '--format=dat[Specify the data format to be printed. The default is "summary"]' ':device:_files -W /dev/input/ -P /dev/input/' } (( $+functions[_libinput_analyze] )) || _libinput_analyze() { local curcontext=$curcontext state line ret=1 local features features=( "per-slot-delta:analyze relative movement per touch per slot" ) _arguments -C \ '--help[Print help and exit]' \ ':feature:->feature' \ '*:: :->option-or-argument' case $state in (feature) _describe -t features 'feature' features ;; (option-or-argument) curcontext=${curcontext%:*:*}:libinput-analyze-$words[1]: if ! _call_function ret _libinput_analyze_$words[1]; then _message "unknown feature: $words[1]" fi ;; esac return ret } (( $+functions[_libinput_record] )) || _libinput_record() { _arguments \ '--help[Show help message and exit]' \ '--all[Record all /dev/input/event* devices available on the system]' \ '--autorestart=[Terminate the current recording after s seconds of device inactivity]' \ {-o+,--output=}'[Speficy the output file to use]:file:_files -g "*.yml"' \ '--multiple[Record multiple devices at once]' \ '--show-keycodes[Show keycodes as-is in the recording]' \ '--with-libinput[Record libinput events alongside device events]' \ '*::device:_files -W /dev/input/ -P /dev/input/' } (( $+functions[_libinput_replay] )) || _libinput_replay() { _arguments \ '--help[Show help message and exit]' \ ':recording:_files' } _libinput() { local curcontext=$curcontext state line ret=1 _arguments -C \ {-h,--help}'[Show help message and exit]' \ '--version[Show version information and exit]' \ ':command:->command' \ '*:: :->option-or-argument' && return case $state in (command) _libinput_commands && ret=0 ;; (option-or-argument) curcontext=${curcontext%:*:*}:libinput-$words[1]: if ! _call_function ret _libinput_$words[1]; then _message "unknown libinput command: $words[1]" fi ;; esac return ret } _libinput site-functions/_sd_hosts_or_user_at_host 0000644 00000000164 15204002235 0014677 0 ustar 00 #autoload # SPDX-License-Identifier: LGPL-2.1+ _alternative \ 'users-hosts:: _user_at_host' \ 'hosts:: _hosts' site-functions/_nvme 0000644 00000076450 15204002235 0010552 0 ustar 00 #compdef _nvme nvme # zsh completions for the nvme command-line interface, # very loosely based on git and adb command completion # Kelly Kaoudis kelly.n.kaoudis at intel.com, June 2015 _nvme () { local -a _cmds _cmds=( 'id-ctrl:display information about the controller' 'id-ns:display information about the namespace' 'list-ns:identify all namespace(s) attached' 'cmdset-ind-id-ns':display I/O Command Set Independent information about the namespace' 'id-iocs:display information about I/O command sets' 'id-domain:display information about domain list' 'create-ns:create a new namespace before attachment' 'delete-ns:delete a detached namespace' 'attach-ns:attach namespace to controller' 'detach-ns:detach namespace from controller' 'list-ctrl:identify all controller(s) attached' 'nvm-id-ctrl:display information about the nvm command set' 'list-endgrp:display information about nvme endurance group list' 'get-ns-id:get namespace id of opened block device' 'get-log:retrieve any log in raw format' 'predictable-lat-log:retrieve predictable latency per nvmset log' 'pred-lat-event-agg-log:retrieve predictable latency event aggregate log' 'persistent-event-log:retrieve presistent event log' 'fw-log:retrieve fw log' 'smart-log:retrieve SMART log' 'smart-log-add:retrieve additional SMART log' 'error-log:retrieve error log' 'endurance-event-agg-log:retrieve endurance group event aggregate log' 'lba-status-log:retrieve lba status log' 'resv-notif-log: retrieve reservation notification log' 'get-feature:display a controller feature' 'set-feature:set a controller feature and show results' 'format:apply new block format to namespace' 'fw-activate:activate a firmware on the device' 'fw-download:download a firmware to the device' 'admin-passthru:submit a passthrough IOCTL' 'io-passthru:submit a passthrough IOCTL' 'security-send:send security/secure data to controller' 'security-recv:ask for security/secure data from controller' 'resv-acquire:acquire reservation on a namespace' 'resv-register:register reservation on a namespace' 'resv-release:release reservation on a namespace' 'resv-report:report reservation on a namespace' 'copy:submit a simple copy command' 'flush:submit a flush' 'compare:compare data on device to data elsewhere' 'read:submit a read command' 'write:submit a write command' 'capacity-mgmt: submit capacity management command' 'show-regs:shows the controller registers; requires admin character device' 'boot-part-log: retrieve boot partition log' 'fid-support-effects-log:retrieve fid support and effects log' 'supported-log-pages: retrieve support log pages details' 'lockdown:submit a lockdown command' 'help:print brief descriptions of all nvme commands' ) local expl _arguments '*:: :->subcmds' && return 0 if (( CURRENT == 1 )); then _describe -t commands "nvme subcommands" _cmds return else case ${words[CURRENT-1]} in (id-ctrl) local _idctrl _idctrl=( /dev/nvme':supply a device to use (required)' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' --human-readable':show infos in readable format' -H':alias of --human-readable' --vendor-specific':also dump binary vendor infos' -v':alias of --vendor-specific' ) _arguments '*:: :->subcmds' _describe -t commands "nvme id-ctrl options" _idctrl ;; (id-ns) local _idns _idns=( /dev/nvme':supply a device to use (required)' --namespace-id=':show infos for namespace <nsid>' -n':alias of --namespace-id' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' --human-readable':show infos in readable format' -H':alias of --human-readable' --vendor-specific':also dump binary vendor infos' -v':alias of --vendor-specific' ) _arguments '*:: :->subcmds' _describe -t commands "nvme id-ns options" _idns ;; (list-ns) local _listns _listns=( /dev/nvme':supply a device to use (required)' --namespace-id=':start namespace infos listing with this nsid' -n':alias of --namespace-id' --csi=':command set identifier' -y':alias of --csi' ) _arguments '*:: :->subcmds' _describe -t commands "nvme list-ns options" _listns ;; (cmdset-ind-id-ns) local _cmdset_ind_idns _cmdset_ind_idns=( /dev/nvme':supply a device to use (required)' --namespace-id=':show infos for namespace <nsid>' -n':alias of --namespace-id' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' --human-readable':show infos in readable format' -H':alias of --human-readable' ) _arguments '*:: :->subcmds' _describe -t commands "nvme cmdset-ind-id-ns options" _cmdset_ind_idns ;; (id-iocs) local _idiocs _idiocs=( /dev/nvme':supply a device to use (required)' --controller-id=':show infos for controller <cntid>' -c':alias of --controller-id' ) _arguments '*:: :->subcmds' _describe -t commands "nvme id-iocs options" _idiocs ;; (id-domain) local _iddomain _iddomain=( /dev/nvme':supply a device to use (required)' --dom-id=':show infos for domain id <cntid>' -d':alias of --dom-id' ) _arguments '*:: :->subcmds' _describe -t commands "nvme id-domain options" _iddomain ;; nvm-id-ctrl) local _nvmidctrl _nvmidctrl=( /dev/nvme':supply a device to use (required)' ) _arguments '*:: :->subcmds' _describe -t commands "nvme nvm-id-ctrl options" _nvmidctrl ;; (list-endgrp) local _listendgrp _listendgrp=( /dev/nvme':supply a device to use (required)' --endgrp-id=':endurance group id' -i':alias of --endgrp-id' ) _arguments '*:: :->subcmds' _describe -t commands "nvme list-ns options" _listendgrp ;; (create-ns) local _createns _createns=( /dev/nvme':supply a device to use (required)' --nsze=':namespace size to create' -s':alias of --nsze' --ncap=':namespace capacity' -c':alias of --ncap' --flbas=':FLBA size' -f':alias of --flbas' --dps=':data protection?' -d':alias of --dps' --nmic=':multipath and sharing' -n':alias of --nmic' --csi=':command set identifier' -y':alias of --csi' ) _arguments '*:: :->subcmds' _describe -t commands "nvme create-ns options" _createns ;; (delete-ns) local _deletens _deletens=( /dev/nvme':supply a device to use (required)' --namespace-id=':namespace to delete' -n':alias of --namespace-id' ) _arguments '*:: :->subcmds' _describe -t commands "nvme delete-ns options" _deletens ;; (attach-ns) local _attachns _attachns=( /dev/nvme':supply a device to use (required)' --namespace-id=':namespace to attach to the controller' -n':alias of --namespace-id' --controllers=':if a device is not provided, supply a comma-sep list of controllers' -c':alias of --controllers' ) _arguments '*:: :->subcmds' _describe -t commands "nvme attach-ns options" _attachns ;; (detach-ns) local _detachns _detachns=( /dev/nvme':supply a device to use (required)' --namespace-id=':namespace to detach from controller' -n':alias of --namespace-id' --controllers=':if a device is not provided, supply a comma-sep list of controllers' -c':alias of --controllers' ) _arguments '*:: :->subcmds' _describe -t commands "nvme detach-ns options" _detachns ;; (list-ctrl) local _listctrl _listctrl=( /dev/nvme':supply a device to use (required)' --namespace-id=':show controllers attached to this namespace' -n':alias of --namespace-id' --cntid=':start the list with this controller' -c':alias of --cntid' ) _arguments '*:: :->subcmds' _describe -t commands "nvme list-ctrl options" _listctrl ;; (get-ns-id) local _getnsid _getnsid=( /dev/nvme':supply a device to use (required)' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-ns-id options" _getnsid ;; (get-log) local _getlog _getlog=( /dev/nvme':supply a device to use (required)' --log-id=':requested log number' -i':alias of --log-id' --log-len=':number of bytes to show for requested log' -l':alias of --log-len' --namespace-id=':get log specific to <nsid> if namespace logs are supported' -n':alias of --namespace-id' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-log options" _getlog ;; (persistent-event-log) local _persistenteventlog _persistenteventlog=( /dev/nvme':supply a device to use (required)' --action=': action the controller shall take for this log page' -a':alias to --action' --log-len=':number of bytes to show for requested log' -l':alias of --log-len' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "persistent-event-log options" _persistenteventlog ;; (pred-lat-event-agg-log) local _predlateventagglog _predlateventagglog=( /dev/nvme':supply a device to use (required)' --log-entries=': Number of pending NVM Set Entries log list' -e':alias to --log-entries' --rae': Retain an Asynchronous Event' -r':alias to --rae' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme pred-lat-event-agg-log options" _predlateventagglog ;; (predictable-lat-log) local _predictablelatlog _predictablelatlog=( /dev/nvme':supply a device to use (required)' --nvmset-id=': NVM Set Identifier on which log page retrieve info' -i':alias to --nvmset-id' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme predictable-lat-log options" _predictablelatlog ;; (fw-log) local _fwlog _fwlog=( /dev/nvme':supply a device to use (required)' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme fw-log options" _fwlog ;; (smart-log) local _smartlog _smartlog=( /dev/nvme':supply a device to use (required)' --namespace-id=':get SMART log specific to <nsid> if namespace logs are supported' -n':alias to --namespace-id' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme smart-log options" _smartlog ;; (smart-log-add) local _add _add=( /dev/nvme':supply a device to use (required)' --namespace-id=':get additional SMART log specific to <nsid> if namespace logs supported' -n':alias to --namespace-id' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme smart-log-add options" _add ;; (error-log) local _errlog _errlog=( /dev/nvme':supply a device to use (required)' --namespace-id=':get log specific to <nsid> if namespace logs are supported' -n':alias to --namespace-id' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' --log-entries=':request n >= 1 log entries' -e':alias to --log-entries' ) _arguments '*:: :->subcmds' _describe -t commands "nvme error-log options" _errlog ;; (endurance-event-agg-log) local _enduranceeventagglog _enduranceeventagglog=( /dev/nvme':supply a device to use (required)' --log-entries=': Number of Endurance Group Event Agg Entries log list' -e':alias to --log-entries' --rae': Retain an Asynchronous Event' -r':alias to --rae' --raw-binary':dump infos in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme endurance-event-agg-log options" _enduranceeventagglog ;; (lba-status-log) local _lbastatuslog _lbastatuslog=( /dev/nvme':supply a device to use (required)' --rae': Retain an Asynchronous Event' -r':alias to --rae' ) _arguments '*:: :->subcmds' _describe -t commands "nvme lba-status-log options" _lbastatuslog ;; (resv-notif-log) local _resvnotiflog _resvnotiflog=( /dev/nvme':supply a device to use (required)' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-notif-log options" _resvnotiflog ;; (boot-part-log) local _bootpartlog _bootpartlog=( /dev/nvme':supply a device to use (required)' --lsp=': log specific field' -s':alias to --lsp' --output-file=': boot partition data output write' -f':alias for --output-file' ) _arguments '*:: :->subcmds' _describe -t commands "nvme boot-part-log options" _bootpartlog ;; (get-feature) local _getf _getf=( /dev/nvme':supply a device to use (required)' --namespace-id=':get feature specific to <nsid>' -n':alias to --namespace-id' --feature-id=':hexadecimal name of feature to examine (required)' -f':alias to --feature-id' --sel=':select from 0 - current, 1 - default, 2 - saved, 3 - supported' -s':alias to --sel' --data-len=':buffer len for returned LBA Type Range or host identifier data' -l':alias for --data-len' --uuid-index=':uuid index' -U':alias for --uuid-index' --cdw11=':dword 11 value, used for interrupt vector configuration only' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-feature options" _getf ;; (lockdown) local _lockdown _lockdown=( /dev/nvme':supply a device to use (required)' --ofi=': Opcode or Feature Identifier(OFI) (required)' -o':alias of --ofi' --ifc=':Interface (INF) field Information (required)' -f':alias of --ifc' --prhbt=':Prohibit(PRHBT) bit field (required)' -p':alias of --prhbt' --scp=':Scope(SCP) field for identifying opcode or feature id (required)' -s':alias of --scp' --uuid=':UUID Index field required aligned with Scope' -U':alias of --uuid' ) _arguments '*:: :->subcmds' _describe -t commands "nvme lockdown options" _lockdown ;; (set-feature) local _setf _setf=( /dev/nvme':supply a device to use (required)' --namespace-id=':feature is specific to <nsid>' -n':alias to --namespace-id' --feature-id=':hexadecimal name of feature to set (required)' -f':alias to --feature-id' --data-len=':buffer length, only used for LBA Type Range or host identifier data' -l':alias for --data-len' --data=':data file for LBA Type Range or host identifier buffer (defaults to stdin)' -d':alias to --data' --value=':new value of feature (required)' -v'alias to --value' --uuid-index=':uuid index' -U':alias for --uuid-index' ) _arguments '*:: :->subcmds' _describe -t commands "nvme set-feature options" _setf ;; (format) local _format _format=( /dev/nvme':supply a device to use (required)' --namespace-id=':<nsid> of namespace to format (required)' -n':alias of --namespace-id' --lbaf=':LBA format to apply to namespace (required)' -l':alias of --lbaf' --ses=':secure erase? 0 - no-op (default), 1 - user-data erase, 2 - cryptographic erase' -s':alias of --ses' --pil=':location of protection information? 0 - end, 1 - start' -p':alias of --pil' --pi=':protection information? 0 - off, 1 - Type 1 on, 2 - Type 2 on, 3 - Type 3 on' -i':alias of --pi' --ms=':extended format? 0 - off (metadata in separate buffer), 1 - on (extended LBA used)' -m':alias of --ms' ) _arguments '*:: :->subcmds' _describe -t commands "nvme format options" _format ;; (fw-activate) local _fwact _fwact=( /dev/nvme':supply a device to use (required)' --action=':activation action (required)? 0 - replace fw without activating, 1 - replace with activation, 2 - replace with activation at next reset' -a':alias of --action' --slot=':firmware slot to activate' -s':alias of --slot' ) _arguments '*:: :->subcmds' _describe -t commands "nvme fw-activate options" _fwact ;; (fw-download) local _fwd _fwd=( /dev/nvme':supply a device to use (required)' --fw=':firmware file to download (required)' -f':alias of --fw' --xfer=':limit on chunk-size of transfer (if device has download size limit)' -x':alias of --xfer' --offset=':starting offset, in dwords (defaults to 0, only useful if download is split across multiple files)' -o':alias of --offset' ) _arguments '*:: :->subcmds' _describe -t commands "nvme fw-download options" _fwd ;; (capacity-mgmt) local _fwd _fwd=( /dev/nvme':supply a device to use (required)' --operation=':Operation to be performed by the controller' -o':alias of --operation' --element-id=':specific to the value of the Operation field' -i':alias of --element-id' --cap-lower=':Least significant 32 bits of the capacity in bytes' -l':alias of --cap-lower' --cap-upper=':Most significant 32 bits of the capacity in bytes' -u':alias of --cap-upper' ) _arguments '*:: :->subcmds' _describe -t commands "nvme capacity-mgmt options" _fwd ;; (supported-log-pages) local _support _support=( /dev/nvme':supply a device to use (required)' --human-readable':show infos in readable format' -H':alias of --human-readable' ) _arguments '*:: :->subcmds' _describe -t commands "nvme supported-log-pages options" _support ;; (admin-passthru) local _admin _admin=( /dev/nvme':supply a device to use (required)' --opcode=':hexadecimal opcode to send (required)' -o':alias of --opcode' --flags=':command flags' -f':alias of --flags' --rsvd=':value for reserved field' -R':alias of --rsvd' --namespace-id=':value for nsid' -n':alias of --namespace-id' --data-len=':length for data buffer' -l':alias of --data-len' --metadata-len=':length for metadata buffer' -m':alias of --metadata-len' --timeout=':value for timeout' -t':alias of --timeout' --cdw2=':value for command dword 2' -2':alias for --cdw2' --cdw3=':value for command dword 3' -3':alias for --cdw3' --cdw10=':value for command dword 10' -4':alias for --cdw10' --cdw11=':value for command dword 11' -5':alias for --cdw11' --cdw12=':value for command dword 12' -6':alias for --cdw12' --cdw13=':value for command dword 13' -7':alias for --cdw13' --cdw14=':value for command dword 14' -8':alias for command dword 14' --cdw15=':value for command dword 15' -9':alias for command dword 15' --input-file=':defaults to stdin; input for write (send direction)' -i':alias for --input-file' --raw-binary':dump output in binary format' -b':alias for --raw-binary' --show-command':simply print command instead of sending it to <device>' -s':alias for --show-command' --dry-run':alias for --show-command' -d':alias for --show-command' --read':set dataflow direction to receive' -r':alias for --read' --write':set dataflow direction to send' -w':alias for --write' ) _arguments '*:: :->subcmds' _describe -t commands "nvme admin-passthru options" _admin ;; (io-passthru) local _io _io=( /dev/nvme':supply a device to use (required)' --opcode=':hexadecimal opcode to send (required)' -o':alias of --opcode' --flags=':command flags' -f':alias of --flags' --rsvd=':value for reserved field' -R':alias of --rsvd' --namespace-id=':value for nsid' -n':alias of --namespace-id' --data-len=':length for data buffer' -l':alias of --data-len' --metadata-len=':length for metadata buffer' -m':alias of --metadata-len' --timeout=':value for timeout' -t':alias of --timeout' --cdw2=':value for command dword 2' -2':alias for --cdw2' --cdw3=':value for command dword 3' -3':alias for --cdw3' --cdw10=':value for command dword 10' -4':alias for --cdw10' --cdw11=':value for command dword 11' -5':alias for --cdw11' --cdw12=':value for command dword 12' -6':alias for --cdw12' --cdw13=':value for command dword 13' -7':alias for --cdw13' --cdw14=':value for command dword 14' -8':alias for command dword 14' --cdw15=':value for command dword 15' -9':alias for command dword 15' --input-file=':defaults to stdin; input for write (send direction)' -i':alias for --input-file' --raw-binary':dump output in binary format' -b':alias for --raw-binary' --show-command':simply print command instead of sending it to <device>' -s':alias for --show-command' --dry-run':alias for --show-command' -d':alias for --show-command' --read':set dataflow direction to receive' -r':alias for --read' --write':set dataflow direction to send' -w':alias for --write' ) _arguments '*:: :->subcmds' _describe -t commands "nvme io-passthru options" _io ;; (security-send) local _ssend _ssend=( /dev/nvme':supply a device to use (required)' --file=':payload' -f':alias for --file' --secp=':security protocol as defined in SPC-4' -p':alias for --secp' --spsp=':send security-protocol-specific data as defined in SPC-4' -s':alias for --spsp' --tl=':transfer length as defined in SPC-4' -t':alias for --tl' ) _arguments '*:: :->subcmds' _describe -t commands "nvme security-send options" _ssend ;; (security-recv) local _srecv _srecv=( /dev/nvme':supply a device to use (required)' --secp=':security protocol as defined in SPC-4' -p':alias for --secp' --spsp=':send security-protocol-specific data as defined in SPC-4' -s':alias for --spsp' --size=':size of buffer (prints to stdout on successful recv)' -x':alias for --size' --al=':allocation length as defined in SPC-4' -a':alias for --al' --raw-binary':dump output in binary format' -b':alias for --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme security-recv options" _srecv ;; (resv-acquire) local _acq _acq=( /dev/nvme':supply a device to use (required)' --namespace-id=':<nsid> of namespace to try to reserve (required)' -n':alias for --namespace-id' --prkey=':pre-empt reservation key' -p':alias for --prkey' --rtype=':hexadecimal reservation type' -t':alias for --rtype' --racqa=':reservation acquire action' -a':alias for --racqa' --iekey=':ignore existing reservation key' -i':alias for --iekey' --crkey':current reservation key' -c':alias for --crkey' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-acquire options" _acq ;; (resv-release) local _rel _rel=( /dev/nvme':supply a device to use (required)' --namespace-id=':nsid' -n':alias of --namespace-id' --rtype=':hexadecimal reservation type' -t':alias of --rtype' --rrela=':reservation release action' -a':alias of --rrela' --iekey':ignore existing reservation key' -i':alias of --iekey' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-release options" _rel ;; (resv-report) local _rep _rep=( /dev/nvme':supply a device to use (required)' --namespace-id=':nsid' -n':alias of --namespace-id' --numd=':number of dwords of reservation status to xfer' -d':alias of --numd' --raw-binary':dump output in binary format' -b':alias of --raw-binary' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-report options" _rep ;; (resv-register) local _reg _reg=( /dev/nvme':supply a device to use (required)' --namespace-id=':nsid' -n':alias of --namespace-id' --crkey=':current reservation key' -c'alias of --crkey' --nrkey=':new reservation key' -k':alias of --nrkey' --cptpl=':change persistence through power loss setting' -p':alias for --cptpl' --rrega=':reservation registration action to perform' -r':alias for --rrega' --iekey':ignore existing reservation key' -i':alias for --iekey' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-register options" _reg ;; (copy) local _copy _copy=( /dev/nvme':supply a device to use (required)' --sdlba=':64-bit addr of first destination logical block' -d':alias of --sdlba' --slbs=':64-bit addr of first block per range (comma-separated list)' -s':alias of --slbs' --blocks=':number of blocks per range (comma-separated list, zeroes-based values)' -b':alias of --blocks' --limited-retry':if included, controller should try less hard to retrieve data from media (if not included, all available data recovery means used)' -l':alias of --limited-retry' --force-unit-access':if included, the data shall be read from non-volatile media' -f':alias of --force-unit access' --prinfow=':protection information and check field (write part)' -p':alias of --prinfow' --prinfor=':protection information and check field (read part)' -P':alias of --prinfor' --ref-tag=':initial lba reference tag (write part)' -r':alias of --ref-tag' --expected-ref-tags=':expected lba reference tags (read part, comma-separated list)' -R':alias of --expected-ref-tags' --app-tag=':lba application tag (write part)' -a':alias of --app-tag' --expected-app-tags=':expected lba application tags (read part, comma-separated list)' -A':alias of --expected-app-tags' --app-tag-mask=':lba application tag mask (write part)' -m':alias of --app-tag-mask' --expected-app-tag-masks=':expected lba application tag masks (read part, comma-separated list)' -M':alias of --expected-app-tag-masks' --dir-type':directive type (write part)' -T':alias of --dir-type' --dir-spec':directive specific (write part)' -S':alias of --dir-spec' --format':source range entry format' -F':alias of --format' ) _arguments '*:: :->subcmds' _describe -t commands "nvme copy options" _copy ;; (flush) local _flush _flush=( /dev/nvme':supply a device to use (required)' --namespace-id=':nsid' -n':alias of --namespace-id' ) _arguments '*:: :->subcmds' _describe -t commands "nvme flush options" _flush ;; (compare) local _comp _comp=( /dev/nvme':supply a device to use (required)' --start-block=':begin compare at this 64-bit LBA on device' -s':alias of --start-block' --block-count=':number of logical blocks on device to compare to local data' -c':alias of --block-count' --metadata-size=':number of bytes of metadata to compare' -y':alias of --metadata-size' --data-size=':size of local data buffer in bytes' -z':alias of --data-size' --data=':local data file to compare to blocks on device' -d':alias of --data' --prinfo=':protection information action and check field' -p':alias of --prinfo' --app-tag-mask=':application tag mask (for end to end PI)' -m':alias of --app-tag-mask' --app-tag=':application tag (for end to end PI)' -a':alias of --app-tag' --limited-retry':if included, controller should try less hard to retrieve data from media (if not included, all available data recovery means used)' -l':alias of --limited-retry' --force-unit-access':if included, the data shall be read from non-volatile media' -f':alias of --force-unit access' --show-command':show command instead of sending to device' -v':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' ) _arguments '*:: :->subcmds' _describe -t commands "nvme compare options" _comp ;; (read) local _read _read=( /dev/nvme':supply a device to use (required)' --start-block=':64-bit address of the first logical block to be read' -s':alias of --start-block' --block-count=':number of logical blocks on device to read' -c':alias of --block-count' --data-size=':size of data to be read' -z':alias of --data-size' --metadata-size=':size of metadata to be read' -y':alias of --metadata-size' --ref-tag=':reference tag (for end to end PI)' -r':alias of --ref-tag' --data=':file into which data should be read (defaults to stdout)' -d':alias of --data' --prinfo=':protection information and check field' -p':alias of --prinfo' --app-tag-mask=':application tag mask (for end to end PI)' -m':alias of --app-tag-mask' --app-tag=':application tag (for end to end PI)' -a':alias of --app-tag' --limited-retry=':if included, controller should try less hard to retrieve data from media (if not included, all available data-recovery means used)' -l':alias of --limited-retry' --latency':latency statistics will be output following read' -t':alias of --latency' --force-unit-access':data read shall be returned from nonvolatile media before command completion is indicated' -f':alias of --force-unit-access' --show-command':show command instead of sending to device' -v':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' ) _arguments '*:: :->subcmds' _describe -t commands "nvme read options" _read ;; (write) local _wr _wr=( /dev/nvme':supply a device to use (required)' --start-block=':64-bit address of the first logical block to be written' -s':alias of --start-block' --block-count=':number of logical blocks on device to write' -c':alias of --block-count' --data-size=':size of data to be written' -z':alias of --data-size' --metadata-size=':size of metadata to be written' -y':alias of --metadata-size' --ref-tag=':reference tag (for end to end PI)' -r':alias of --ref-tag' --data=':file from which data should be written to device (defaults to stdin)' -d':alias of --data' --prinfo=':protection information and check field' -p':alias of --prinfo' --app-tag-mask=':application tag mask (for end to end PI)' -m':alias of --app-tag-mask' --app-tag=':application tag (for end to end PI)' -a':alias of --app-tag' --limited-retry=':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)' -l':alias of --limited-retry' --latency':latency statistics will be output following write' -t':alias of --latency' --force-unit-access':data shall be written to nonvolatile media before command completion is indicated' -f':alias of --force-unit-access' --show-command':show command instead of sending to device' -v':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' ) _arguments '*:: :->subcmds' _describe -t commands "nvme write options" _wr ;; (show-regs) local _shor _shor=( /dev/nvme':supply a device to use (required)' ) _arguments '*:: :->subcmds' _describe -t commands "nvme show-regs options" _shor ;; (fid-support-effects-log) local _fidsupporteffectslog _fidsupporteffectslog=( /dev/nvme':supply a device to use (required)' ) _arguments '*:: :->subcmds' _describe -t commands "nvme fid-support-effects-log options" _fidsupporteffectslog ;; (help) local _h _h=( id-ctrl id-ns list-ns id-iocs create-ns delete-ns attach-ns detach-ns list-ctrl get-ns-id get-log fw-log smart-log error-log get-feature set-feature format fw-activate fw-download admin-passthru io-passthru security-send security-recv resv-acquire resv-register resv-release resv-report flush compare read write copy show-regs persistent-event-log pred-lat-event-agg-log nvm-id-ctrl endurance-event-agg-log lba-status-log resv-notif-log capacity-mgmt id-domain boot-part-log fid-support-effects-log supported-log-pages lockdown supported-log-pages list-endgrp ) _arguments '*:: :->subcmds' _describe -t commands "help: infos on a specific nvme command, or provide no option to see a synopsis of all nvme commands" _h ;; (*) _files ;; esac return fi _files } site-functions/_curl 0000644 00000032164 15204002235 0010544 0 ustar 00 #compdef curl # curl zsh completion local curcontext="$curcontext" state state_descr line typeset -A opt_args local rc=1 _arguments -C -S \ --happy-eyeballs-timeout-ms'[How long to wait in milliseconds for IPv6 before trying IPv4]':'<milliseconds>' \ --aws-sigv4'[Use AWS V4 signature authentication]':'<provider1[:provider2[:region[:service]]]>' \ {-c,--cookie-jar}'[Write cookies to <filename> after operation]':'<filename>':_files \ {-D,--dump-header}'[Write the received headers to <filename>]':'<filename>':_files \ {-y,--speed-time}'[Trigger '\''speed-limit'\'' abort after this time]':'<seconds>' \ --proxy-cacert'[CA certificate to verify peer against for proxy]':'<file>':_files \ --tls13-ciphers'[of TLS 1.3 ciphersuites> TLS 1.3 cipher suites to use]':'<list' \ {-E,--cert}'[Client certificate file and password]':'<certificate[:password]>' \ --libcurl'[Dump libcurl equivalent code of this command line]':'<file>':_files \ --proxy-capath'[CA directory to verify peer against for proxy]':'<dir>':_files \ --proxy-negotiate'[HTTP Negotiate (SPNEGO) authentication on the proxy]':'Use' \ --proxy-pinnedpubkey'[FILE/HASHES public key to verify proxy with]':'<hashes>' \ --crlfile'[Get a CRL list in PEM format from the given file]':'<file>':_files \ --proxy-insecure'[HTTPS proxy connections without verifying the proxy]':'Do' \ --proxy-ssl-allow-beast'[security flaw for interop for HTTPS proxy]':'Allow' \ --abstract-unix-socket'[Connect via abstract Unix domain socket]':'<path>' \ --pinnedpubkey'[FILE/HASHES Public key to verify peer against]':'<hashes>' \ --proxy-pass'[Pass phrase for the private key for HTTPS proxy]':'<phrase>' \ {-p,--proxytunnel}'[Operate through an HTTP proxy tunnel (using CONNECT)]' \ --socks5-hostname'[SOCKS5 proxy, pass host name to proxy]':'<host[:port]>' \ --proto-default'[Use PROTOCOL for any URL missing a scheme]':'<protocol>' \ --proxy-tls13-ciphers'[list> TLS 1.3 proxy cipher suites]':'<ciphersuite' \ --socks5-gssapi-service'[SOCKS5 proxy service name for GSS-API]':'<name>' \ --ftp-alternative-to-user'[String to replace USER \[name\]]':'<command>' \ --ftp-ssl-control'[SSL/TLS for FTP login, clear for transfer]':'Require' \ {-T,--upload-file}'[Transfer local FILE to destination]':'<file>':_files \ --local-port'[Force use of RANGE for local port numbers]':'<num/range>' \ --proxy-tlsauthtype'[TLS authentication type for HTTPS proxy]':'<type>' \ {-R,--remote-time}'[Set the remote file'\''s time on the local output]' \ --retry-connrefused'[on connection refused (use with --retry)]':'Retry' \ --suppress-connect-headers'[proxy CONNECT response headers]':'Suppress' \ {-j,--junk-session-cookies}'[session cookies read from file]':'Ignore' \ --location-trusted'[--location, and send auth to other hosts]':'Like' \ --proxy-cert-type'[Client certificate type for HTTPS proxy]':'<type>' \ {-O,--remote-name}'[Write output to a file named as the remote file]' \ --trace-ascii'[Like --trace, but without hex output]':'<file>':_files \ --connect-timeout'[Maximum time allowed for connection]':'<seconds>' \ --expect100-timeout'[How long to wait for 100-continue]':'<seconds>' \ {-g,--globoff}'[Disable URL sequences and ranges using {} and \[\]]' \ {-m,--max-time}'[Maximum time allowed for the transfer]':'<seconds>' \ --dns-ipv4-addr'[IPv4 address to use for DNS requests]':'<address>' \ --dns-ipv6-addr'[IPv6 address to use for DNS requests]':'<address>' \ --ignore-content-length'[the size of the remote resource]':'Ignore' \ {-k,--insecure}'[Allow insecure server connections when using SSL]' \ --mail-auth'[Originator address of the original email]':'<address>' \ --noproxy'[List of hosts which do not use proxy]':'<no-proxy-list>' \ --proto-redir'[Enable/disable PROTOCOLS on redirect]':'<protocols>' \ --dns-interface'[Interface to use for DNS requests]':'<interface>' \ --hostpubmd5'[Acceptable MD5 hash of the host public key]':'<md5>' \ --keepalive-time'[Interval time for keepalive probes]':'<seconds>' \ --proxy-cert'[Set client certificate for proxy]':'<cert[:passwd]>' \ --random-file'[File for reading random data from]':'<file>':_files \ --socks5-basic'[Enable username/password auth for SOCKS5 proxies]' \ --cacert'[CA certificate to verify peer against]':'<file>':_files \ {-H,--header}'[Pass custom header(s) to server]':'<header/@file>' \ {-i,--include}'[Include protocol response headers in the output]' \ --proxy-header'[Pass custom header(s) to proxy]':'<header/@file>' \ --unix-socket'[Connect through this Unix domain socket]':'<path>' \ {-w,--write-out}'[Use output FORMAT after completion]':'<format>' \ --http2-prior-knowledge'[HTTP 2 without HTTP/1.1 Upgrade]':'Use' \ {-o,--output}'[Write to file instead of stdout]':'<file>':_files \ {-J,--remote-header-name}'[the header-provided filename]':'Use' \ --socks4a'[SOCKS4a proxy on given host + port]':'<host[:port]>' \ {-Y,--speed-limit}'[Stop transfers slower than this]':'<speed>' \ {-z,--time-cond}'[Transfer based on a time condition]':'<time>' \ --capath'[CA directory to verify peer against]':'<dir>':_files \ {-f,--fail}'[Fail silently (no output at all) on HTTP errors]' \ --proxy-tlspassword'[TLS password for HTTPS proxy]':'<string>' \ {-U,--proxy-user}'[Proxy user and password]':'<user:password>' \ --proxy1.0'[Use HTTP/1.0 proxy on given port]':'<host[:port]>' \ {-r,--range}'[Retrieve only the bytes within RANGE]':'<range>' \ {-A,--user-agent}'[Send User-Agent <name> to server]':'<name>' \ --egd-file'[EGD socket path for random data]':'<file>':_files \ --fail-early'[Fail on first transfer error, do not continue]' \ --haproxy-protocol'[HAProxy PROXY protocol v1 header]':'Send' \ --preproxy'[Use this proxy first]':'[protocol://]host[:port]' \ --retry-max-time'[Retry only within this period]':'<seconds>' \ --socks4'[SOCKS4 proxy on given host + port]':'<host[:port]>' \ --socks5'[SOCKS5 proxy on given host + port]':'<host[:port]>' \ --socks5-gssapi-nec'[with NEC SOCKS5 server]':'Compatibility' \ --ssl-allow-beast'[security flaw to improve interop]':'Allow' \ --cert-status'[Verify the status of the server certificate]' \ --ftp-create-dirs'[the remote dirs if not present]':'Create' \ {-:,--next}'[Make next URL use its separate set of options]' \ --proxy-key-type'[Private key file type for proxy]':'<type>' \ --remote-name-all'[the remote file name for all URLs]':'Use' \ {-X,--request}'[Specify request command to use]':'<command>' \ --retry'[Retry request if transient problems occur]':'<num>' \ --ssl-no-revoke'[cert revocation checks (WinSSL)]':'Disable' \ --cert-type'[Certificate file type (DER/PEM/ENG)]':'<type>' \ --connect-to'[Connect to host]':'<HOST1:PORT1:HOST2:PORT2>' \ --create-dirs'[Create necessary local directory hierarchy]' \ --max-redirs'[Maximum number of redirects allowed]':'<num>' \ {-n,--netrc}'[Must read .netrc for user name and password]' \ --proxy-crlfile'[Set a CRL list for proxy]':'<file>':_files \ --sasl-ir'[Enable initial response in SASL authentication]' \ --socks5-gssapi'[GSS-API auth for SOCKS5 proxies]':'Enable' \ --interface'[Use network INTERFACE (or address)]':'<name>' \ --key-type'[Private key file type (DER/PEM/ENG)]':'<type>' \ --netrc-file'[Specify FILE for netrc]':'<filename>':_files \ {-N,--no-buffer}'[Disable buffering of the output stream]' \ --proxy-service-name'[SPNEGO proxy service name]':'<name>' \ --styled-output'[styled output for HTTP headers]':'Enable' \ --max-filesize'[Maximum file size to download]':'<bytes>' \ --negotiate'[Use HTTP Negotiate (SPNEGO) authentication]' \ --no-keepalive'[Disable TCP keepalive on the connection]' \ {-#,--progress-bar}'[Display transfer progress as a bar]' \ {-x,--proxy}'[Use this proxy]':'[protocol://]host[:port]' \ --proxy-anyauth'[any proxy authentication method]':'Pick' \ {-Q,--quote}'[Send command(s) to server before transfer]' \ --request-target'[the target for this request]':'Specify' \ {-u,--user}'[Server user and password]':'<user:password>' \ {-K,--config}'[Read config from a file]':'<file>':_files \ {-C,--continue-at}'[Resumed transfer offset]':'<offset>' \ --data-raw'[HTTP POST data, '\''@'\'' allowed]':'<data>' \ --disallow-username-in-url'[username in url]':'Disallow' \ --krb'[Enable Kerberos with security <level>]':'<level>' \ --proxy-ciphers'[SSL ciphers to use for proxy]':'<list>' \ --proxy-digest'[Use Digest authentication on the proxy]' \ --proxy-tlsuser'[TLS username for HTTPS proxy]':'<name>' \ {-b,--cookie}'[Send cookies from string/file]':'<data>' \ --data-urlencode'[HTTP POST data url encoded]':'<data>' \ --delegation'[GSS-API delegation permission]':'<LEVEL>' \ {-P,--ftp-port}'[Use PORT instead of PASV]':'<address>' \ --post301'[Do not switch to GET after following a 301]' \ --post302'[Do not switch to GET after following a 302]' \ --post303'[Do not switch to GET after following a 303]' \ --trace-time'[Add time stamps to trace/verbose output]' \ --dns-servers'[DNS server addrs to use]':'<addresses>' \ {-G,--get}'[Put the post data in the URL and use GET]' \ --limit-rate'[Limit transfer speed to RATE]':'<speed>' \ --ntlm-wb'[Use HTTP NTLM authentication with winbind]' \ --path-as-is'[Do not squash .. sequences in URL path]' \ --proxy-basic'[Use Basic authentication on the proxy]' \ --retry-delay'[Wait time between retries]':'<seconds>' \ --trace'[Write a debug trace to FILE]':'<file>':_files \ {-a,--append}'[Append to target file when uploading]' \ --ftp-ssl-ccc-mode'[Set CCC mode]':'<active/passive>' \ --metalink'[Process given URLs as metalink XML file]' \ --tr-encoding'[Request compressed transfer encoding]' \ --xattr'[Store metadata in extended file attributes]' \ --ftp-skip-pasv-ip'[the IP address for PASV]':'Skip' \ --pass'[Pass phrase for the private key]':'<phrase>' \ --proxy-ntlm'[Use NTLM authentication on the proxy]' \ {-S,--show-error}'[Show error even when -s is used]' \ --ciphers'[of ciphers> SSL ciphers to use]':'<list' \ --form-string'[Specify multipart MIME data]':'<name=string>' \ --login-options'[Server login options]':'<options>' \ --tftp-blksize'[Set TFTP BLKSIZE option]':'<value>' \ --tftp-no-options'[not send any TFTP options]':'Do' \ {-v,--verbose}'[Make the operation more talkative]' \ --proxy-key'[Private key for HTTPS proxy]':'<key>' \ {-F,--form}'[Specify multipart MIME data]':'<name=content>' \ --mail-from'[Mail from this address]':'<address>' \ --oauth2-bearer'[OAuth 2 Bearer Token]':'<token>' \ --proto'[Enable/disable PROTOCOLS]':'<protocols>' \ --tlsauthtype'[TLS authentication type]':'<type>' \ --no-sessionid'[Disable SSL session-ID reusing]' \ --data-binary'[HTTP POST binary data]':'<data>' \ --mail-rcpt'[Mail to this address]':'<address>' \ {-t,--telnet-option}'[Set telnet option]':'<opt=val>' \ --tls-max'[Use TLSv1.0 or greater]':'<VERSION>' \ --ftp-ssl-ccc'[Send CCC after authenticating]' \ {-4,--ipv4}'[Resolve names to IPv4 addresses]' \ {-6,--ipv6}'[Resolve names to IPv6 addresses]' \ --netrc-optional'[either .netrc or URL]':'Use' \ --service-name'[SPNEGO service name]':'<name>' \ {-V,--version}'[Show version number and quit]' \ --data-ascii'[HTTP POST ASCII data]':'<data>' \ --ftp-account'[Account data string]':'<data>' \ --compressed-ssh'[SSH compression]':'Enable' \ --disable-eprt'[Inhibit using EPRT or LPRT]' \ --ftp-method'[Control CWD usage]':'<method>' \ --pubkey'[SSH Public key file name]':'<key>' \ --raw'[Do HTTP "raw"; no transfer decoding]' \ --anyauth'[Pick any authentication method]' \ --compressed'[Request compressed response]' \ --ftp-pasv'[Use PASV/EPSV instead of PORT]' \ --no-alpn'[Disable the ALPN TLS extension]' \ --tcp-nodelay'[Use the TCP_NODELAY option]' \ {-B,--use-ascii}'[Use ASCII/text transfer]' \ --digest'[Use HTTP Digest Authentication]' \ --proxy-tlsv1'[Use TLSv1 for HTTPS proxy]' \ --engine'[Crypto engine to use]':'<name>' \ --no-npn'[Disable the NPN TLS extension]' \ --basic'[Use HTTP Basic Authentication]' \ {-M,--manual}'[Display the full manual]' \ --false-start'[Enable TLS False Start]' \ --crlf'[Convert LF to CRLF in upload]' \ {-d,--data}'[HTTP POST data]':'<data>' \ {-I,--head}'[Show document info only]' \ --key'[Private key file name]':'<key>' \ --ntlm'[Use HTTP NTLM authentication]' \ {-e,--referer}'[Referrer URL]':'<URL>' \ {-1,--tlsv1}'[Use TLSv1.0 or greater]' \ --disable-epsv'[Inhibit using EPSV]' \ --stderr'[Where to redirect stderr]' \ --ftp-pret'[Send PRET before PASV]' \ {-L,--location}'[Follow redirects]' \ --tcp-fastopen'[Use TCP Fast Open]' \ --tlsuser'[TLS user name]':'<name>' \ {-l,--list-only}'[List only mode]' \ {-q,--disable}'[Disable .curlrc]' \ --url'[URL to work with]':'<url>' \ {-0,--http1.0}'[Use HTTP 1.0]' \ {-h,--help}'[This help text]' \ --ssl-reqd'[Require SSL/TLS]' \ --tlspassword'[TLS password]' \ {-s,--silent}'[Silent mode]' \ --http1.1'[Use HTTP 1.1]' \ {-2,--sslv2}'[Use SSLv2]' \ {-3,--sslv3}'[Use SSLv3]' \ --tlsv1.0'[Use TLSv1.0]' \ --tlsv1.1'[Use TLSv1.1]' \ --tlsv1.2'[Use TLSv1.2]' \ --tlsv1.3'[Use TLSv1.3]' \ --http2'[Use HTTP 2]' \ --ssl'[Try SSL/TLS]' \ '*:URL:_urls' && rc=0 return rc site-functions/_bootctl 0000644 00000002115 15204002235 0011236 0 ustar 00 #compdef bootctl # SPDX-License-Identifier: LGPL-2.1+ (( $+functions[_bootctl_command] )) || _bootctl_command() { local -a _bootctl_cmds _bootctl_cmds=( "status:Show status of installed systemd-boot and EFI variables" "install:Install systemd-boot to the ESP and EFI variables" "update:Update systemd-boot in the ESP and EFI variables" "remove:Remove systemd-boot from the ESP and EFI variables" ) if (( CURRENT == 1 )); then _describe -t commands 'bootctl command' _bootctl_cmds || compadd "$@" else local curcontext="$curcontext" cmd="${${_bootctl_cmds[(r)$words[1]:*]%%:*}}" if (( $+functions[_bootctl_$cmd] )); then _bootctl_$cmd else _message "no more options" fi fi } _arguments \ {-h,--help}'[Prints a short help text and exits.]' \ '--version[Prints a short version string and exits.]' \ '--path=[Path to the EFI System Partition (ESP)]:path:_directories' \ '--no-variables[Do not touch EFI variables]' \ '*::bootctl command:_bootctl_command' vendor-completions/_etckeeper 0000644 00000001172 15204002235 0012416 0 ustar 00 #compdef etckeeper local _VCS=$(sed -n "s,^VCS=\([\"']\?\)\(.*\)\1$,\2,p" \ ${ETCKEEPER_CONF_DIR:-/etc/etckeeper}/etckeeper.conf 2>/dev/null) _arguments '--help[show this help message and exit]' \ '--version[show version information]' \ ":etckeeper command:(/etc/etckeeper/*.d(/:t:r))" \ '*::subcmd:->subcmd' && return 0 case "$words[1]" in (commit) _arguments ':message text: ' ;; (update-ignore) _arguments '-a[add a "managed by etckeeper" block]' ;; (uninit) _arguments '-f[force uninit without prompting]' ;; (vcs) [[ $_VCS == git ]] && service=git _$_VCS ;; (*) ;; esac
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 0 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�