annotate misc/_li @ 4306:94e0968987cd

plugin XEP-0033: code modernisation, improve delivery, data validation: - Code has been rewritten using Pydantic models and `async` coroutines for data validation and cleaner element parsing/generation. - Delivery has been completely rewritten. It now works even if server doesn't support multicast, and send to local multicast service first. Delivering to local multicast service first is due to bad support of XEP-0033 in server (notably Prosody which has an incomplete implementation), and the current impossibility to detect if a sub-domain service handles fully multicast or only for local domains. This is a workaround to have a good balance between backward compatilibity and use of bandwith, and to make it work with the incoming email gateway implementation (the gateway will only deliver to entities of its own domain). - disco feature checking now uses `async` corountines. `host` implementation still use Deferred return values for compatibility with legacy code. rel 450
author Goffi <goffi@goffi.org>
date Thu, 26 Sep 2024 16:12:01 +0200
parents 7b888a488474
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
1 #compdef li libervia-cli li_dev jp jp_dev
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
2 # Libervia CLI: Command Line Interface for Libervia
1766
d17772b0fe22 copyright update
Goffi <goffi@goffi.org>
parents: 1396
diff changeset
3 # Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org)
818
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
4
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
5 # This program is free software: you can redistribute it and/or modify
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # it under the terms of the GNU Affero General Public License as published by
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # (at your option) any later version.
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
9
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # This program is distributed in the hope that it will be useful,
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # GNU Affero General Public License for more details.
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
14
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # You should have received a copy of the GNU Affero General Public License
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
17
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
18
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
19 #TODO: - caching (see _store_cache en _retrieve_cache)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
20 # - filtering imposibles arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
21 # - arguments (jids, files)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
22
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
23 PYTHON='python3'
818
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
24
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
25 local optionals subcommands arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
26 local context state state_descr line
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
27 typeset -A val_args
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
28
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
29 _li() {
818
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
30 eval `/usr/bin/env $PYTHON 2> /dev/null <<- PYTHONEND
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
31 import re
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
32 from subprocess import check_output
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
33
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
34 # import sys
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
35 # words_raw="li_dev " + ' '.join(sys.argv[1:]) # for debugging in a script
818
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
36 words_raw="$words" # $words is the command line currently completed
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
37
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
38 words_all = words_raw.split()
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
39 prog_name = words_all[0]
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
40
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
41 words_no_opt = [word for word in words_all if not word.startswith('-')] # command line without optional arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
42
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
43 choices_cache = {}
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
44
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
45 ARG = r'[-a-z0-9_]' # charset accepted for an argument name
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
46 subcommands_re = re.compile(r"^ +{((?:" + ARG + r"+)(?:," + ARG + r"+)*)}", re.MULTILINE)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
47 optionals_re = re.compile(r"^ {2,}(--?" + ARG + r"+(?: [A-Z_0-9]+)?(?:, --" + ARG + r"+(?: [A-Z_0-9]+)?)?)\n? {2,}(.*(?:\n {4,}.*)*$)", re.MULTILINE)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
48 arguments_re = re.compile(r"^ {2,}([a-z_]" + ARG + r"*) {2,}(.*$)", re.MULTILINE)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
49 clean_re = re.compile(r"(?P<prefix_spaces>^ +)|(?P<double_spaces> {2,})|(?P<newline>\n)|(?P<quote>')|(?P<suffix_spaces> +$)", re.MULTILINE)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
50
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
51 def _clean(desc):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
52 def sub_clean(match):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
53 matched_dict = match.groupdict()
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
54 matched = {matched for matched in matched_dict if matched_dict[matched]}
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
55 if matched.intersection(('prefix_spaces', 'suffix_spaces')):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
56 return ''
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
57 elif matched.intersection(('double_spaces', 'newline')):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
58 return ' '
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
59 elif matched.intersection(('quote',)):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
60 return r"'\''"
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
61 else:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
62 raise ValueError
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
63 return clean_re.sub(sub_clean, desc)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
64
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
65 def parse_help(jp_help):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
66 # parse the help returning subcommands, optionals arguments, and mandatory arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
67 subcommands = subcommands_re.findall(jp_help)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
68 subcommands = {subcommand:"" for subcommand in subcommands[0].split(',')} if subcommands else {}
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
69 optionals = dict(optionals_re.findall(jp_help))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
70 arguments = dict(arguments_re.findall(jp_help))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
71 for subcommand in subcommands:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
72 subcommands[subcommand] = arguments.pop(subcommand, '')
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
73 return subcommands, optionals, arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
74
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
75 def get_choice(opt_choice):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
76 choices = choices_cache.get(opt_choice)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
77 if choices is not None:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
78 return choices
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
79 if opt_choice == 'PROFILE':
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
80 profiles = check_output([prog_name, 'profile', 'list'])
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
81 choices = ":profile:(%s)" % ' '.join(profiles.split('\n'))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
82 if choices:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
83 choices_cache[opt_choice] = choices
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
84 return choices
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
85 else:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
86 return ""
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
87
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
88 def construct_opt(opts, desc):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
89 # construct zsh's _arguments line for optional arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
90 arg_lines = []
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
91 for opt in opts.split(', '):
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
92 try:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
93 opt_name, opt_choice = opt.split()
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
94 except ValueError:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
95 # there is no argument
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
96 opt_name, opt_choice = opt, None
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
97 # arg_lines.append("'()%s[%s]%s'" % (opt_name+('=' if opt_name.startswith('--') else '+'),
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
98 arg_lines.append("'()%s[%s]%s'" % (opt_name,
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
99 _clean(desc),
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
100 "%s" % get_choice(opt_choice) if opt_choice else ''
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
101 ))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
102 return ' '.join(arg_lines)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
103
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
104 current_args = []
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
105
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
106 while True:
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
107 # parse li's help recursively until words_no_opt doesn't correspond anymore to a subcommand
818
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
108 try:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
109 current_args.append(words_no_opt.pop(0))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
110 jp_help = check_output(current_args + ['--help'])
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
111 # print "jp_help (%s):\n%s\n\n---\n" % (' '.join(current_args), jp_help) # for debugging
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
112 subcommands, optionals, arguments = parse_help(jp_help)
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
113 if words_no_opt[0] not in subcommands:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
114 break
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
115 except IndexError:
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
116 break
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
117
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
118 # now we fill the arrays so zsh can use them
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
119 env=[]
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
120 env.append("optionals=(%s)" % ' '.join(construct_opt(opt, desc) for opt, desc in optionals.items()))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
121 env.append("subcommands=(%s)" % ' '.join(["'%s[%s]'" % (subcommand, _clean(desc)) for subcommand, desc in subcommands.items()]))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
122 env.append("arguments=(%s)" % ' '.join(["'%s[%s]'" % (argument, _clean(desc)) for argument, desc in arguments.items()]))
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
123
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
124 print ";".join(env) # this line is for eval
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
125 PYTHONEND
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
126 `
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
127
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
128 if [ -n "$optionals" ]; then
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
129 _values optional $optionals
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
130
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
131 fi
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
132 if [ -n "$subcommands" ]; then
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
133 _values subcommand $subcommands
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
134 fi
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
135 if [ -n "$arguments" ]; then
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
136 #_values argument $arguments
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
137 fi
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
138 }
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
139
c328bcc4db71 jp: zsh completion, first draft (added in a new /misc directory):
Goffi <goffi@goffi.org>
parents:
diff changeset
140
3485
7b888a488474 misc: update names for D-Bus service file and zsh autocompletion:
Goffi <goffi@goffi.org>
parents: 1766
diff changeset
141 _li "$@"