summaryrefslogtreecommitdiff
path: root/src/zsh-completion
diff options
context:
space:
mode:
Diffstat (limited to 'src/zsh-completion')
-rw-r--r--src/zsh-completion/_sd_hosts_or_user_at_host5
-rw-r--r--src/zsh-completion/_sd_machines13
-rw-r--r--src/zsh-completion/_sd_outputmodes5
-rw-r--r--src/zsh-completion/_sd_unit_files9
4 files changed, 32 insertions, 0 deletions
diff --git a/src/zsh-completion/_sd_hosts_or_user_at_host b/src/zsh-completion/_sd_hosts_or_user_at_host
new file mode 100644
index 0000000000..282f7328e4
--- /dev/null
+++ b/src/zsh-completion/_sd_hosts_or_user_at_host
@@ -0,0 +1,5 @@
+#autoload
+
+_alternative \
+ 'users-hosts:: _user_at_host' \
+ 'hosts:: _hosts'
diff --git a/src/zsh-completion/_sd_machines b/src/zsh-completion/_sd_machines
new file mode 100644
index 0000000000..a0039ee0f8
--- /dev/null
+++ b/src/zsh-completion/_sd_machines
@@ -0,0 +1,13 @@
+#autoload
+__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
diff --git a/src/zsh-completion/_sd_outputmodes b/src/zsh-completion/_sd_outputmodes
new file mode 100644
index 0000000000..3836f79b73
--- /dev/null
+++ b/src/zsh-completion/_sd_outputmodes
@@ -0,0 +1,5 @@
+#autoload
+
+local -a _output_opts
+_output_opts=(short short-iso short-precise short-monotonic verbose export json json-pretty json-sse cat)
+_describe -t output 'output mode' _output_opts || compadd "$@"
diff --git a/src/zsh-completion/_sd_unit_files b/src/zsh-completion/_sd_unit_files
new file mode 100644
index 0000000000..3e7a4ee803
--- /dev/null
+++ b/src/zsh-completion/_sd_unit_files
@@ -0,0 +1,9 @@
+#autoload
+
+_sd_unit_files() {
+ local files expl
+ files=( '*:files:->files' )
+
+ _description files expl 'unit file'
+ _files "$expl[@]" -g '*.(automount|busname|device|mount|path|service|socket|swap|target|timer)'
+}