-#compdef systemctl loginctl journalctl hostnamectl localectl timedatectl systemd-coredumpctl udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent
+#compdef systemctl loginctl journalctl hostnamectl localectl timedatectl systemd-coredumpctl udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent machinectl
_ctls()
{
'--after[Show units ordered after]' \
'--before[Show units ordered before]' \
'--failed[Show only failed units]' \
- "--full[Don't ellipsize unit names on output]" \
+ {-l,--full}"[Don't ellipsize unit names on output]" \
'--fail[When queueing a new job, fail if conflicting jobs are pending]' \
'--ignore-dependencies[When queueing a new job, ignore all its dependencies]' \
'--kill-who=[Who to send signal to]:killwho:(main control all)' \
{-n,--lines=}'[Number of journal entries to show]:integer' \
'--no-tail[Show all lines, even in follow mode]' \
{-o,--output=}'[Change journal output mode]:output modes:_outputmodes' \
- '--full[Show long fields in full]' \
+ {-l,--full}'[Show long fields in full]' \
{-a,--all}'[Show all fields, including long and unprintable]' \
{-q,--quiet}"[Don't show privilege warning]" \
'--no-pager[Do not pipe output into a pager]' \
'--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.]' \
'--prefix=[Only apply rules that apply to paths with the specified prefix.]' \
+ '--exclude-prefix=[Ignore rules that apply to paths with the specified prefix.]' \
'--help[Prints a short help text and exits.]' \
'*::files:_files'
;;
'--plymouth[Ask question with plymouth(8).]' \
'--console[Ask question on /dev/console.]'
;;
+ machinectl)
+ _arguments \
+ {-h,--help}'[Prints a short help text and exits.]' \
+ '--version[Prints a short version string and exits.]' \
+ {-p,--property=}'[Limit output to specified property.]:property:(Name Id Timestamp TimestampMonotonic Service Scope Leader Class State RootDirectory)' \
+ {-a,--all}'[Show all proerties]' \
+ (-l,--full)'[Do not ellipsize cgroup members]' \
+ '--no-pager[Do not pipe output into a pager]' \
+ '--no-ask-password[Do not ask for system passwords]' \
+ '--kill-who=[Who to send signal to]:killwho:(leader all)' \
+ {-s,--signal=}'[Which signal to send]:signal:_signals' \
+ {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \
+ {-P,--privileged}'[Acquire privileges before execution]' \
+ '*::machinectl command:_machinectl_command'
+ ;;
*) _message 'eh?' ;;
esac
}
}
+(( $+functions[_machinectl_command] )) || _machinectl_command()
+{
+ local -a _machinectl_cmds
+ _machinectl_cmds=(
+ "list:List currently running VMs/containers"
+ "status:Show VM/container status"
+ "show:Show properties of one or more VMs/containers"
+ "terminate:Terminate one or more VMs/containers"
+ "kill:Send signal to process or a VM/container"
+ )
+ if (( CURRENT == 1 )); then
+ _describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@"
+ else
+ local curcontext="$curcontext"
+ cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}"
+ if (( $#cmd )); then
+ case $cmd in
+ list) msg="no options" ;;
+ *)
+ _machines=( "${(foa)$(machinectl list | awk '{print $1}')}" )
+ if [[ -n "$_machines" ]]; then
+ _describe 'machines' _machines
+ else
+ _message 'no machines'
+ fi
+ esac
+ else
+ _message "no more options"
+ fi
+ fi
+}
+
_udevadm_info(){
_arguments \
'--query=[Query the database for specified type of device data. It needs the --path or --name to identify the specified device.]:type:(name symlink path property all)' \