From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 18098 invoked from network); 29 Aug 2020 13:50:20 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 29 Aug 2020 13:50:20 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Mime-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject: Message-ID:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From :Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=LjgrqsZN9NwKOIW4upMOsrqHDG7KUqjoYhX3SD7iAjs=; b=fyXoLhvDDEIdwfk9UTs3MT7hUP 3wVZD52UQrE1NUnbd4/ZINMy+78O48hs62iMLlHn76KNxco3Jy2P5eXk9BjF4ZqsQzhPl+EUC+tas 86u4cD/Qu1EEdOw48ZP6j9vhWeI0VLcTcXGBNvbVgybxyMcSGe+rVeMXEG69Jr9qxiNTy2Gerx4O9 LznMq64sI4e/B93gAaz7zVjNXqA8bRq8iolASxYN9hNILgzhlxdUh9Wsy2FIMU5au88y4vMAyTUe/ zS4p+Yw3bCBg8x47/J50Mnik4yDzFcby6VsGhuk2vLP2XmJVYZOewZVSyV8Pp9vGjOHcU+R4bRgjo BuH3E2Fw==; Received: from authenticated user by zero.zsh.org with local id 1kC1FI-0005uI-LK; Sat, 29 Aug 2020 13:50:16 +0000 Authentication-Results: zsh.org; iprev=pass (know-smtprelay-omc-6.server.virginmedia.net) smtp.remote-ip=80.0.253.70; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=skipped; arc=none Received: from know-smtprelay-omc-6.server.virginmedia.net ([80.0.253.70]:46107) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1kC1Ez-0005kP-9q; Sat, 29 Aug 2020 13:49:58 +0000 Received: from pws-Zeus ([86.16.88.158]) by cmsmtp with ESMTPA id C1EykL0AnEW1fC1EykZznC; Sat, 29 Aug 2020 14:49:56 +0100 X-Originating-IP: [86.16.88.158] X-Authenticated-User: p.w.stephenson@ntlworld.com X-Spam: 0 X-Authority: v=2.3 cv=Xu/Ux2N9 c=1 sm=1 tr=0 a=MiHCjVqLJ44lE3bxSlffFQ==:117 a=MiHCjVqLJ44lE3bxSlffFQ==:17 a=IkcTkHD0fZMA:10 a=K9TLyJHrOVXaGrmoPscA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ntlworld.com; s=meg.feb2017; t=1598708996; bh=LjgrqsZN9NwKOIW4upMOsrqHDG7KUqjoYhX3SD7iAjs=; h=Subject:From:To:Date:In-Reply-To:References; b=WpeqKDksy8Xl2EBEBmG8voUd+Ae0C9813ZGDUQCaUYUxQjYGacbYzgFq3uciRMpoX /9Nv444TouPUJgCWEQHBnsz9ivHsmW6miyJf63HdzBCcsSXOeeLxUf6lrkMsumg8XM j4YO2wKwRtVSB2ajy9Ip+SpRZTeIgntHQBA4ZAOZhdp+RXiypGuQJq6mZ06+DXfJsd jI+MWJwL6z0cTc9YTjYwfeO6MJaANGKkjrSw8RBQGKlit6WbbfRf8Rwkod4mP8A7DP x/kOCplh7qvzMdrQTGx7XRnJ9coEDtjGYo24qQK4wj7hx/b5RUNW68rFNmmtSY5IOa hHkSDKNCV9dcg== Message-ID: Subject: Re: PATCH: minimal dropbox command line completion From: Peter Stephenson To: zsh-workers@zsh.org Date: Sat, 29 Aug 2020 14:49:56 +0100 In-Reply-To: <61559-1598701545.540695@NVxH.JTOI.LNn_> References: <20200828022232.0914170c@tarpaulin.shahaf.local2> <842686448.1489803.1598603222115@mail2.virginmedia.com> <20200829003857.0a14a362@tarpaulin.shahaf.local2> <61559-1598701545.540695@NVxH.JTOI.LNn_> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfIDD6K+XbSqvbpT8BpnX7I8KVJZCFye+FVI0SnNRhngJNg+NBkPfPZuF9fUZEQW5pdA40bIP6gS72jHcuZlAGVCRk00vFAHZFOgBGTvQCJS+5GYc78b1 7lZTkpjwnTRGKGtauzmkyXPjTdzrEPn3WYQw63B7srJYhVqPXI2NEPkv X-Seq: 47350 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: I've written a slightly less minimal completion from scratch. My eyes may have glazed over on some of the instructions, but I think I've got most points. pws #compdef dropbox if [[ CURRENT -eq 2 || $words[2] = help ]]; then local -a line progs _call_program command dropbox help | while read -A line; do if [[ $line[1] = [a-z]## ]]; then progs+=("${line[1]}:${line[2,-1]}") fi done _describe -t command 'Dropbox command' progs else local -a opts case $words[2] in (exclude) _path_files -g '*(/)' ;; (filestatus) shift words (( CURRENT-- )) _arguments -s : \ '(-l --list)'{-l,--list}'[use format like ls]' \ '(-a --all)'{-a,--all}'[do not ignore entries starting .]' \ '*:file to list:_files' ;; (ls|puburl|sharelink) _files ;; (autostart|lansync) opts=("y:turn $words[2] on" "n:turn $words[2] off") _describe "$words[2] behaviour" opts ;; (proxy) _arguments \ '2:proxy mode:(none auto manual)' \ '3:proxy type for manual mode:(http socks4 socks5)' \ '4:proxy host for manual mode:_hosts' \ '5:proxy port for manual mode:_ports' \ '6:proxy user for manual mode:_users' \ '7:proxy password for manual mode:' ;; (start) shift words (( CURRENT -- )) _arguments -s : '(-i --install)'{-i,--install}'[auto install dropboxd]' ;; (throttle) _arguments \ '2:download limit in KB/s:(unlimited)' \ '3:upload limit in KB/s:(unlimited)' ;; (*) _default ;; esac fi