blob: 8b057f2aa56aa3a4e2aa1ebadc556649aa7f73ad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#compdef efa
typeset -a arguments
typeset -A argument_pairs argument_postfix
typeset arg
argument_pairs=(
time t+
arrive a+
date d+
bike b
exclude e+
max-change m+
prefer P+
proximity p
include i+
walk-speed w+
ignore-info I+
version v
)
argument_postfix=(
time '[Journey start time]:timestamp'
arrive '[Journey end time]:timestamp'
date '[Journey date]:date'
bike '[Prefer connections where you can take a bike with you]'
exclude '[Exclude transport types]:transport type:_efa_transports'
max-change '[Maximum interchanges]:maximum interchange number'
prefer '[Prefer connections]:connection type:(speed nowait nowalk)'
proximity '[Take close stops into account]'
include '[Include extra connection types]:connection type:(local ic ice)'
walk-speed '[Walk speed]:walk speed:(normal fast slow)'
ignore-info '[Ignore additional information]:regex'
verison '[Print version information]'
)
arguments=(
'--'{from,to,via}':city: :stop: '
'--'{from,to,via}'-type:type:(stop address poi)'
'(--depart --arrive)--time:time'
'(--depart --time)--arrive:time'
'(--arrive --time)--depart:time'
'*--post:POST key=value'
)
for arg in ${(k)argument_pairs}; {
arguments+='(--'${arg}')-'${argument_pairs[$arg]}${argument_postfix[$arg]}
arguments+='(-'${${argument_pairs[$arg]}[1]}')--'${arg}${argument_postfix[$arg]}
}
function _efa_transports {
typeset -a keys used_prefixes
typeset prefix=''
keys=(zug s-bahn u-bahn stadtbahn tram stadtbus regionalbus schnellbus seilbahn schiff ast sonstige)
if [[ -prefix *, ]] {
prefix=${words[$CURRENT]%,*},
used_prefixes=(${(s:,:)prefix})
}
_wanted expression expl 'sort expression' \
compadd -F used_prefixes -qS , -P "$prefix" $keys
}
_arguments -s $arguments
|