|
1 # Relational pipes |
|
2 # Copyright © 2021 František Kučera (Frantovo.cz, GlobalCode.info) |
|
3 # |
|
4 # This program is free software: you can redistribute it and/or modify |
|
5 # it under the terms of the GNU General Public License as published by |
|
6 # the Free Software Foundation, version 3 of the License. |
|
7 # |
|
8 # This program is distributed in the hope that it will be useful, |
|
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
11 # GNU General Public License for more details. |
|
12 # |
|
13 # You should have received a copy of the GNU General Public License |
|
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
15 |
|
16 _relpipe_in_asn1_completion() { |
|
17 local w0 w1 w2 w3 |
|
18 |
|
19 COMPREPLY=() |
|
20 w0=${COMP_WORDS[COMP_CWORD]} |
|
21 w1=${COMP_WORDS[COMP_CWORD-1]} |
|
22 w2=${COMP_WORDS[COMP_CWORD-2]} |
|
23 w3=${COMP_WORDS[COMP_CWORD-3]} |
|
24 |
|
25 BOOLEAN_VALUES=( |
|
26 "true" |
|
27 "false" |
|
28 ) |
|
29 |
|
30 # TODO: introspection: after moving to alt2xml the available options and their values should be provided by the parser |
|
31 |
|
32 PARSER_OPTIONS=( |
|
33 "encoding" |
|
34 "parse-encapsulated" |
|
35 "tree-style" |
|
36 "tree-with-namespaces" |
|
37 "root-name" |
|
38 ); |
|
39 |
|
40 ENCODINGS=( |
|
41 "BER" |
|
42 "DER" |
|
43 "CER" |
|
44 "PER" |
|
45 "XER" |
|
46 "ASN.1" |
|
47 ); |
|
48 |
|
49 MODES=( |
|
50 "relpipe" |
|
51 "freeform" |
|
52 ); |
|
53 |
|
54 if [[ "$w1" == "--relation" && "x$w0" == "x" ]]; then COMPREPLY=("''") |
|
55 elif [[ "$w1" == "--mode" ]]; then COMPREPLY=($(compgen -W "${MODES[*]}" -- "$w0")) |
|
56 elif [[ "$w1" == "--parser-option" ]]; then COMPREPLY=($(compgen -W "${PARSER_OPTIONS[*]}" -- "$w0")) |
|
57 elif [[ "$w2" == "--parser-option" && "$w1" == "encoding" ]]; then COMPREPLY=($(compgen -W "${ENCODINGS[*]}" -- "$w0")) |
|
58 elif [[ "$w2" == "--parser-option" && "$w1" == "parse-encapsulated" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0")) |
|
59 else |
|
60 OPTIONS=( |
|
61 "--relation" |
|
62 "--mode" |
|
63 "--parser-option" |
|
64 ) |
|
65 COMPREPLY=($(compgen -W "${OPTIONS[*]}" -- "$w0")) |
|
66 fi |
|
67 } |
|
68 |
|
69 complete -F _relpipe_in_asn1_completion relpipe-in-asn1 |