ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PK&]\site-functions/_loginctlnu[#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' PK&]q(}(}site-functions/_nvmenu[#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 ' -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 ' -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 ' -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 ' -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 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 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 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 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 ' -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 ' -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=': 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 ' -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 ' -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=': 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 } PK&] #Ƽ site-functions/_systemd-tmpfilesnu[#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' PK&]&J<<site-functions/_systemctlnu[#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' PK&]msite-functions/_hostnamectlnu[#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' PK&]ZHMMsite-functions/_bootctlnu[#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' PK&]s?ccsite-functions/_sd_machinesnu[#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 PK&]ا  site-functions/_systemd-resolvenu[#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 . _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' PK&]M44site-functions/_systemd-deltanu[#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)' PK&]NJ8j@ @ site-functions/_systemd-runnu[#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' PK&]BV..site-functions/_coredumpctlnu[#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' PK&]Kg%%site-functions/_systemd-inhibitnu[#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' PK&]tsite-functions/_localectlnu[#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' PK&]x;; site-functions/_imunify360_agentnu[#compdef imunify360-agent # zsh completion for imunify360-agent # Auto-generated by imunify360-agent completions zsh _imunify360_agent() { local -a commands flags local cmd_path # Build command path from words cmd_path=() for word in ${words[2,-1]}; do [[ $word == -* ]] && continue [[ $word == "$words[$CURRENT]" ]] && continue cmd_path+=($word) done case "${cmd_path[*]}" in "config show defaults") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management native disable") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management native enable") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management native status") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin rules disable") flags=("--domains" "--json" "--rule" "--user" "--verbose" "-v") compadd -- --domains --json --rule --user --verbose -v && return ;; "wordpress-plugin rules enable") flags=("--domains" "--json" "--rule" "--user" "--verbose" "-v") compadd -- --domains --json --rule --user --verbose -v && return ;; "wordpress-plugin rules list-disabled") flags=("--domains" "--json" "--limit" "--offset" "--user" "--verbose" "-v") compadd -- --domains --json --limit --offset --user --verbose -v && return ;; "wordpress-plugin waf set") flags=("--all-users" "--json" "--no-all-users" "--status" "--users" "--verbose" "-v") compadd -- --all-users --json --no-all-users --status --users --verbose -v && return ;; "3rdparty conflicts") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "advisor apply") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "advisor apply-all") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "analyst-cleanup get-requests") flags=("--json" "--limit" "--offset" "--username" "--verbose" "-v") compadd -- --json --limit --offset --username --verbose -v && return ;; "analyst-cleanup is-allowed") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "analyst-cleanup request") flags=("--email" "--json" "--message" "--username" "--verbose" "-v") compadd -- --email --json --message --username --verbose -v && return ;; "billing get-config") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "billing sync") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "config get-many") flags=("--json" "--users" "--verbose" "-v") compadd -- --json --users --verbose -v && return ;; "config patch") flags=("--data" "--json" "--user" "--verbose" "-v") compadd -- --data --json --user --verbose -v && return ;; "config patch-many") flags=("--data" "--json" "--users" "--verbose" "-v") compadd -- --data --json --users --verbose -v && return ;; "config show") commands=("defaults") flags=("--json" "--user" "--verbose" "-v") _describe 'command' commands -- flags && return ;; "config update") flags=("--items" "--json" "--user" "--verbose" "-v") compadd -- --items --json --user --verbose -v && return ;; "eula accept") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "eula show") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management defaults") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management disable") flags=("--feature" "--json" "--users" "--verbose" "-v") compadd -- --feature --json --users --verbose -v && return ;; "feature-management enable") flags=("--feature" "--json" "--users" "--verbose" "-v") compadd -- --feature --json --users --verbose -v && return ;; "feature-management get") flags=("--json" "--user" "--verbose" "-v") compadd -- --json --user --verbose -v && return ;; "feature-management list") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "feature-management native") commands=("disable" "enable" "status") _describe 'command' commands -- flags && return ;; "feature-management show") flags=("--json" "--limit" "--offset" "--order-by" "--search" "--verbose" "-v") compadd -- --json --limit --offset --order-by --search --verbose -v && return ;; "hook add") flags=("--event" "--json" "--path" "--verbose" "-v") compadd -- --event --json --path --verbose -v && return ;; "hook add-native") flags=("--event" "--json" "--path" "--verbose" "-v") compadd -- --event --json --path --verbose -v && return ;; "hook delete") flags=("--event" "--json" "--path" "--verbose" "-v") compadd -- --event --json --path --verbose -v && return ;; "hook list") flags=("--event" "--json" "--verbose" "-v") compadd -- --event --json --verbose -v && return ;; "login get") flags=("--json" "--username" "--verbose" "-v") compadd -- --json --username --verbose -v && return ;; "login pam") flags=("--json" "--password" "--username" "--verbose" "-v") compadd -- --json --password --username --verbose -v && return ;; "notifications-config patch") flags=("--data" "--json" "--verbose" "-v") compadd -- --data --json --verbose -v && return ;; "notifications-config show") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "notifications-config update") flags=("--items" "--json" "--verbose" "-v") compadd -- --items --json --verbose -v && return ;; "permissions list") flags=("--json" "--user" "--verbose" "-v") compadd -- --json --user --verbose -v && return ;; "support send") flags=("--attachments" "--cln" "--description" "--email" "--json" "--subject" "--verbose" "-v") compadd -- --attachments --cln --description --email --json --subject --verbose -v && return ;; "wordpress-plugin install-and-update") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin install-on-new-sites") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin list-incidents") flags=("--by-abuser-ip" "--by-country-code" "--by-domain" "--include-hidden" "--json" "--limit" "--no-include-hidden" "--offset" "--order-by" "--search" "--since" "--site-search" "--to" "--user" "--verbose" "-v") compadd -- --by-abuser-ip --by-country-code --by-domain --include-hidden --json --limit --no-include-hidden --offset --order-by --search --since --site-search --to --user --verbose -v && return ;; "wordpress-plugin list-sites") flags=("--json" "--limit" "--offset" "--user" "--verbose" "-v") compadd -- --json --limit --offset --user --verbose -v && return ;; "wordpress-plugin rules") commands=("disable" "enable" "list-disabled") _describe 'command' commands -- flags && return ;; "wordpress-plugin tidy-up") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin update") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin waf") commands=("set") _describe 'command' commands -- flags && return ;; "3rdparty") commands=("conflicts") _describe 'command' commands -- flags && return ;; "add-sudouser") flags=("--json" "--user" "--verbose" "-v") compadd -- --json --user --verbose -v && return ;; "advisor") commands=("apply" "apply-all") _describe 'command' commands -- flags && return ;; "analyst-cleanup") commands=("get-requests" "is-allowed" "request") _describe 'command' commands -- flags && return ;; "auth-cloud") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "auth-cloud-refresh-token") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "billing") commands=("get-config" "sync") _describe 'command' commands -- flags && return ;; "check-domains") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "checkdb") flags=("--json" "--no-recreate-schema" "--recreate-schema" "--verbose" "-v") compadd -- --json --no-recreate-schema --recreate-schema --verbose -v && return ;; "completions") compadd -- && return ;; "config") commands=("get-many" "patch" "patch-many" "show" "update") _describe 'command' commands -- flags && return ;; "delete-sudouser") flags=("--json" "--user" "--verbose" "-v") compadd -- --json --user --verbose -v && return ;; "disable-plugin") flags=("--json" "--plugin-name" "--verbose" "-v") compadd -- --json --plugin-name --verbose -v && return ;; "doctor") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "enable-plugin") flags=("--json" "--plugin-name" "--verbose" "-v") compadd -- --json --plugin-name --verbose -v && return ;; "eula") commands=("accept" "show") _describe 'command' commands -- flags && return ;; "feature-management") commands=("defaults" "disable" "enable" "get" "list" "native" "show") _describe 'command' commands -- flags && return ;; "get-news") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "get-package-versions") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "hook") commands=("add" "add-native" "delete" "list") _describe 'command' commands -- flags && return ;; "infected-domains") flags=("--json" "--limit" "--offset" "--verbose" "-v") compadd -- --json --limit --offset --verbose -v && return ;; "list-docroots") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "login") commands=("get" "pam") _describe 'command' commands -- flags && return ;; "notifications-config") commands=("patch" "show" "update") _describe 'command' commands -- flags && return ;; "permissions") commands=("list") _describe 'command' commands -- flags && return ;; "plesk-stats") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "register") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "rstatus") flags=("--json" "--no-paid" "--paid" "--verbose" "-v") compadd -- --json --no-paid --paid --verbose -v && return ;; "support") commands=("send") _describe 'command' commands -- flags && return ;; "unregister") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "update") flags=("--force" "--json" "--list" "--no-force" "--no-list" "--verbose" "--version" "-v") compadd -- --force --json --list --no-force --no-list --verbose --version -v && return ;; "update-license") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "version") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wakeup") flags=("--json" "--verbose" "-v") compadd -- --json --verbose -v && return ;; "wordpress-plugin") commands=("install-and-update" "install-on-new-sites" "list-incidents" "list-sites" "rules" "tidy-up" "update" "waf") _describe 'command' commands -- flags && return ;; "") commands=("3rdparty" "add-sudouser" "advisor" "analyst-cleanup" "auth-cloud" "auth-cloud-refresh-token" "billing" "check-domains" "checkdb" "completions" "config" "delete-sudouser" "disable-plugin" "doctor" "enable-plugin" "eula" "feature-management" "get-news" "get-package-versions" "hook" "infected-domains" "list-docroots" "login" "notifications-config" "permissions" "plesk-stats" "register" "rstatus" "support" "unregister" "update" "update-license" "version" "wakeup" "wordpress-plugin") flags=("--console-log-level" "--log-config" "--remote-addr") _describe 'command' commands -- flags && return ;; esac } _imunify360_agent PK&]dU4site-functions/_kernel-installnu[#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 PK&]tt(site-functions/_sd_hosts_or_user_at_hostnu[#autoload # SPDX-License-Identifier: LGPL-2.1+ _alternative \ 'users-hosts:: _user_at_host' \ 'hosts:: _hosts' PK&]ڿ+!!site-functions/_sd_outputmodesnu[#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 "$@" PK&]D+~ site-functions/_busctlnu[#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 . (( $+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' PK&]:iWWsite-functions/_journalctlnu[#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' PK&]Wtsite-functions/_timedatectlnu[#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' PK&]v site-functions/_systemd-analyzenu[#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' PK&]qluJuJsite-functions/_firewalldnu[#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 PK&]W4site-functions/_systemdnu[#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 PK&]Sgt4t4site-functions/_curlnu[#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]':'' \ --aws-sigv4'[Use AWS V4 signature authentication]':'' \ {-c,--cookie-jar}'[Write cookies to after operation]':'':_files \ {-D,--dump-header}'[Write the received headers to ]':'':_files \ {-y,--speed-time}'[Trigger '\''speed-limit'\'' abort after this time]':'' \ --proxy-cacert'[CA certificate to verify peer against for proxy]':'':_files \ --tls13-ciphers'[of TLS 1.3 ciphersuites> TLS 1.3 cipher suites to use]':'' \ --libcurl'[Dump libcurl equivalent code of this command line]':'':_files \ --proxy-capath'[CA directory to verify peer against for proxy]':'':_files \ --proxy-negotiate'[HTTP Negotiate (SPNEGO) authentication on the proxy]':'Use' \ --proxy-pinnedpubkey'[FILE/HASHES public key to verify proxy with]':'' \ --crlfile'[Get a CRL list in PEM format from the given 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]':'' \ --pinnedpubkey'[FILE/HASHES Public key to verify peer against]':'' \ --proxy-pass'[Pass phrase for the private key for HTTPS proxy]':'' \ {-p,--proxytunnel}'[Operate through an HTTP proxy tunnel (using CONNECT)]' \ --socks5-hostname'[SOCKS5 proxy, pass host name to proxy]':'' \ --proto-default'[Use PROTOCOL for any URL missing a scheme]':'' \ --proxy-tls13-ciphers'[list> TLS 1.3 proxy cipher suites]':'' \ --ftp-alternative-to-user'[String to replace USER \[name\]]':'' \ --ftp-ssl-control'[SSL/TLS for FTP login, clear for transfer]':'Require' \ {-T,--upload-file}'[Transfer local FILE to destination]':'':_files \ --local-port'[Force use of RANGE for local port numbers]':'' \ --proxy-tlsauthtype'[TLS authentication type for HTTPS proxy]':'' \ {-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]':'' \ {-O,--remote-name}'[Write output to a file named as the remote file]' \ --trace-ascii'[Like --trace, but without hex output]':'':_files \ --connect-timeout'[Maximum time allowed for connection]':'' \ --expect100-timeout'[How long to wait for 100-continue]':'' \ {-g,--globoff}'[Disable URL sequences and ranges using {} and \[\]]' \ {-m,--max-time}'[Maximum time allowed for the transfer]':'' \ --dns-ipv4-addr'[IPv4 address to use for DNS requests]':'
' \ --dns-ipv6-addr'[IPv6 address to use for DNS requests]':'
' \ --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]':'
' \ --noproxy'[List of hosts which do not use proxy]':'' \ --proto-redir'[Enable/disable PROTOCOLS on redirect]':'' \ --dns-interface'[Interface to use for DNS requests]':'' \ --hostpubmd5'[Acceptable MD5 hash of the host public key]':'' \ --keepalive-time'[Interval time for keepalive probes]':'' \ --proxy-cert'[Set client certificate for proxy]':'' \ --random-file'[File for reading random data from]':'':_files \ --socks5-basic'[Enable username/password auth for SOCKS5 proxies]' \ --cacert'[CA certificate to verify peer against]':'':_files \ {-H,--header}'[Pass custom header(s) to server]':'
' \ {-i,--include}'[Include protocol response headers in the output]' \ --proxy-header'[Pass custom header(s) to proxy]':'
' \ --unix-socket'[Connect through this Unix domain socket]':'' \ {-w,--write-out}'[Use output FORMAT after completion]':'' \ --http2-prior-knowledge'[HTTP 2 without HTTP/1.1 Upgrade]':'Use' \ {-o,--output}'[Write to file instead of stdout]':'':_files \ {-J,--remote-header-name}'[the header-provided filename]':'Use' \ --socks4a'[SOCKS4a proxy on given host + port]':'' \ {-Y,--speed-limit}'[Stop transfers slower than this]':'' \ {-z,--time-cond}'[Transfer based on a time condition]':'