about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/User/_user_at_host15
1 files changed, 15 insertions, 0 deletions
diff --git a/Completion/User/_user_at_host b/Completion/User/_user_at_host
new file mode 100644
index 000000000..6006ef63b
--- /dev/null
+++ b/Completion/User/_user_at_host
@@ -0,0 +1,15 @@
+#autoload
+
+local expl nm="$compstate[nmatches]"
+
+if [[ -prefix 1 *@ ]]; then
+  local user=${PREFIX/@}
+  compset -P 1 '*@'
+  _description expl "hostnames for $user"
+  _combination accounts_users_hosts users="$user" hosts "$expl[@]" "$@"
+else
+  _description expl "usernames"
+  _combination accounts_users_hosts users -S@ -q "$expl[@]" "$@"
+fi
+
+[[ nm -ne compstate[nmatches] ]]