Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: doas completion
- X-seq: zsh-workers 39534
- From: Matthew Martin <phy1729@xxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Re: PATCH: doas completion
- Date: Sat, 1 Oct 2016 09:31:06 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to:user-agent; bh=3eSZmpmOPoljO0pBLsK+aL6bcQkjvXSYC6AJPbRbmec=; b=nal6EUnPsx6DUiFLcX5ylTv6Ytt0kY2ri3UUMfZEiwJrlcTMKQtsEJTdRBuEvZpRhq 8imJqFdf70k0i2DqBgygoPmfxaIwJz6/0WvGc5gp+mb1Kz1PYHkmQitrTdDykglWFW1G /Z9nBEdtbE4+AYirNcUqcBK5uDzPc7DNyoKed2XPvDoWCX5qkWy3sIcxs7GhcaWMo3UC KFZ9qkUfEUKatlD2VBkY1MeuAHouxkaVpmPwB3x94AU1G34LtungD2V+wEYeVUEN9cgF Xbf6A4TJE6RlROeccwyJBZzP3BJiuEubVwtxtAUOaJQsB5SA2XDchm7STl2DeFLOlPeN /hNw==
- In-reply-to: <80164.1475219190@hydra.kiddle.eu>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mail-followup-to: zsh-workers@xxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <80164.1475219190@hydra.kiddle.eu>
On Fri, Sep 30, 2016 at 09:06:30AM +0200, Oliver Kiddle wrote:
> Much of this is just cut and paste from _sudo.
> I think the -a option might be OpenBSD specific: once things settle down
> with a single portable doas implementation instead of the current state
> of there being several then that can be cleaned up.
>
> Oliver
>
> diff --git a/Completion/Unix/Command/_doas b/Completion/Unix/Command/_doas
> new file mode 100644
> index 0000000..5c26b1d
> --- /dev/null
> +++ b/Completion/Unix/Command/_doas
> @@ -0,0 +1,18 @@
> +#compdef doas
> +
> +local environ e cmd
> +
> +zstyle -a ":completion:${curcontext}:" environ environ
> +
> +for e in "${environ[@]}"
> +do local -x "$e"
> +done
> +
> +cmd="$words[1]"
> +_arguments -s -S \
> + '(-n -s)-C+[check config file and report on command matching]:config:_files' \
> + '(-C)-n[non-interactive: fail rather than prompt for a password]' \
> + '-a+[specify authentication style]:authentication style' \
> + '(-C)-s[run a shell]' \
> + '-u+[run command as specified user]:user:_users' \
> + '*::arguments:{ _comp_priv_prefix=( $cmd -n ${(kv)opt_args[-u]} ) ; _normal }'
I've had an alternate version sitting in my tree for a while. Merging
the two I get the below. Changes are adding -A '-*' to _arguments,
adding the -L option, sorting options, and ignoring * with -s. I had it
in BSD, but I suppose it's been ported elsewhere now.
- Matthew Martin
diff --git a/Completion/BSD/Command/_doas b/Completion/BSD/Command/_doas
new file mode 100644
index 0000000..b36388e
--- /dev/null
+++ b/Completion/Unix/Command/_doas
@@ -0,0 +1,21 @@
+#compdef doas
+
+local environ e cmd
+
+zstyle -a ":completion:${curcontext}:" environ environ
+
+for e in "${environ[@]}"
+do local -x "$e"
+done
+
+cmd="$words[1]"
+_arguments -s -S -A '-*' : \
+ - optL \
+ '-L[clear any persisted authorizations]' \
+ - default \
+ '-a+[specify authentication style]:authentication style' \
+ '(-n -s)-C+[check config file and report on command matching]:config:_files' \
+ '(-C)-n[non-interactive: fail rather than prompt for a password]' \
+ '(-C *)-s[run a shell]' \
+ '-u+[run command as specified user]:user:_users' \
+ '*::arguments:{ _comp_priv_prefix=( $cmd -n ${(kv)opt_args[-u]} ) ; _normal }'
Messages sorted by:
Reverse Date,
Date,
Thread,
Author