Skip to content

Commit 4f5f708

Browse files
committed
regen examples
1 parent c3a67b0 commit 4f5f708

3 files changed

Lines changed: 167 additions & 48 deletions

File tree

examples/colors-usage/src/lib/colors.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ white() { print_in_color "\e[37m" "$*"; }
4242

4343
bold() { print_in_color "\e[1m" "$*"; }
4444
underlined() { print_in_color "\e[4m" "$*"; }
45+
bold_underlined() { print_in_color "\e[1;4m" "$*"; }
4546

4647
red_bold() { print_in_color "\e[1;31m" "$*"; }
4748
green_bold() { print_in_color "\e[1;32m" "$*"; }

spec/fixtures/workspaces/lib-upgrade/src/lib/colors.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ white() { print_in_color "\e[37m" "$*"; }
4242

4343
bold() { print_in_color "\e[1m" "$*"; }
4444
underlined() { print_in_color "\e[4m" "$*"; }
45+
bold_underlined() { print_in_color "\e[1;4m" "$*"; }
4546

4647
red_bold() { print_in_color "\e[1;31m" "$*"; }
4748
green_bold() { print_in_color "\e[1;32m" "$*"; }

spec/fixtures/workspaces/lib-upgrade/src/lib/send_completions.sh

Lines changed: 165 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,72 +6,189 @@ send_completions() {
66
echo $'# completely (https://github.com/bashly-framework/completely)'
77
echo $'# Modifying it manually is not recommended'
88
echo $''
9-
echo $'_cli_completions_filter() {'
10-
echo $' local words="$1"'
9+
echo $'_cli_completions_flag_expects_value() {'
10+
echo $' case "$1" in'
11+
echo $' --user|-u) return 0 ;;'
12+
echo $' --password|-p) return 0 ;;'
13+
echo $' esac'
14+
echo $''
15+
echo $' return 1'
16+
echo $'}'
17+
echo $''
18+
echo $'_cli_completions() {'
1119
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
12-
echo $' local result=()'
20+
echo $' local prev='
21+
echo $' if ((COMP_CWORD > 0)); then'
22+
echo $' prev=${COMP_WORDS[$((COMP_CWORD - 1))]}'
23+
echo $' fi'
1324
echo $''
14-
echo $' # words the user already typed (excluding the command itself)'
15-
echo $' local used=()'
25+
echo $' local completed=()'
1626
echo $' if ((COMP_CWORD > 1)); then'
17-
echo $' used=("${COMP_WORDS[@]:1:$((COMP_CWORD - 1))}")'
27+
echo $' completed=("${COMP_WORDS[@]:1:$((COMP_CWORD - 1))}")'
1828
echo $' fi'
1929
echo $''
20-
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
21-
echo $' # Completing an option: offer everything (including options)'
22-
echo $' echo "$words"'
23-
echo $''
24-
echo $' else'
25-
echo $' # Completing a non-option: offer only non-options,'
26-
echo $' # and don\'t re-offer ones already used earlier in the line.'
27-
echo $' for word in $words; do'
28-
echo $' [[ "${word:0:1}" == "-" ]] && continue'
29-
echo $''
30-
echo $' local seen=0'
31-
echo $' for u in "${used[@]}"; do'
32-
echo $' if [[ "$u" == "$word" ]]; then'
33-
echo $' seen=1'
34-
echo $' break'
35-
echo $' fi'
36-
echo $' done'
37-
echo $' ((!seen)) && result+=("$word")'
38-
echo $' done'
30+
echo $' local non_options=()'
31+
echo $' local completed_options=()'
32+
echo $' local skip_next=0'
33+
echo $' for word in "${completed[@]}"; do'
34+
echo $' if ((skip_next)); then'
35+
echo $' skip_next=0'
36+
echo $' continue'
37+
echo $' fi'
38+
echo $''
39+
echo $' if [[ "${word:0:1}" == "-" ]]; then'
40+
echo $' completed_options+=("$word")'
41+
echo $' if _cli_completions_flag_expects_value "$word"; then'
42+
echo $' skip_next=1'
43+
echo $' fi'
44+
echo $' continue'
45+
echo $' fi'
46+
echo $''
47+
echo $' non_options+=("$word")'
48+
echo $' done'
49+
echo $''
50+
echo $' local route_id='
51+
echo $' local route_word_count=-1'
52+
echo $' local route_has_positionals=0'
53+
echo $' local positional_index=0'
54+
echo $' if (( ${#non_options[@]} >= 0 )) &&'
55+
echo $' (( 0 > route_word_count ))'
56+
echo $' then'
57+
echo $' route_id=0'
58+
echo $' route_word_count=0'
59+
echo $' route_has_positionals=0'
60+
echo $' positional_index=$((${#non_options[@]} - 0))'
61+
echo $' fi'
3962
echo $''
40-
echo $' echo "${result[*]}"'
63+
echo $' if (( ${#non_options[@]} >= 1 )) &&'
64+
echo $' (( 1 > route_word_count )) &&'
65+
echo $' [[ "${non_options[0]}" == "download" || "${non_options[0]}" == "d" ]]'
66+
echo $' then'
67+
echo $' route_id=1'
68+
echo $' route_word_count=1'
69+
echo $' route_has_positionals=1'
70+
echo $' positional_index=$((${#non_options[@]} - 1))'
4171
echo $' fi'
42-
echo $'}'
4372
echo $''
44-
echo $'_cli_completions() {'
45-
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
46-
echo $' local compwords=()'
47-
echo $' if ((COMP_CWORD > 0)); then'
48-
echo $' compwords=("${COMP_WORDS[@]:1:$((COMP_CWORD - 1))}")'
73+
echo $' if (( ${#non_options[@]} >= 1 )) &&'
74+
echo $' (( 1 > route_word_count )) &&'
75+
echo $' [[ "${non_options[0]}" == "upload" || "${non_options[0]}" == "u" ]]'
76+
echo $' then'
77+
echo $' route_id=2'
78+
echo $' route_word_count=1'
79+
echo $' route_has_positionals=1'
80+
echo $' positional_index=$((${#non_options[@]} - 1))'
4981
echo $' fi'
50-
echo $' local compline="${compwords[*]}"'
5182
echo $''
5283
echo $' COMPREPLY=()'
5384
echo $''
54-
echo $' case "$compline" in'
55-
echo $' \'download\'*)'
56-
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur")'
57-
echo $' ;;'
85+
echo $' if [[ -z "$route_id" ]] || { (( route_word_count == 0 )) && (( !route_has_positionals )) && [[ "${cur:0:1}" != "-" ]]; }; then'
86+
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "download d upload u" -- "$cur")'
87+
echo $' return'
88+
echo $' fi'
5889
echo $''
59-
echo $' \'upload\'*)'
60-
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur")'
90+
echo $' case "$route_id:$prev" in'
91+
echo $' 2:--user|2:-u)'
92+
echo $' return'
6193
echo $' ;;'
62-
echo $''
63-
echo $' \'d\'*)'
64-
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur")'
94+
echo $' 2:--password|2:-p)'
95+
echo $' return'
6596
echo $' ;;'
97+
echo $' esac'
6698
echo $''
67-
echo $' \'u\'*)'
68-
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur")'
69-
echo $' ;;'
99+
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
100+
echo $' case "$route_id" in'
101+
echo $' 0)'
102+
echo $' local words=()'
103+
echo $' local option_seen=0'
104+
echo $' for completed_option in "${completed_options[@]}"; do'
105+
echo $' case "$completed_option" in'
106+
echo $' --help|-h) option_seen=1 ;;'
107+
echo $' esac'
108+
echo $' done'
109+
echo $' if ((!option_seen)); then'
110+
echo $' words+=("--help" "-h")'
111+
echo $' fi'
112+
echo $' local option_seen=0'
113+
echo $' for completed_option in "${completed_options[@]}"; do'
114+
echo $' case "$completed_option" in'
115+
echo $' --version|-v) option_seen=1 ;;'
116+
echo $' esac'
117+
echo $' done'
118+
echo $' if ((!option_seen)); then'
119+
echo $' words+=("--version" "-v")'
120+
echo $' fi'
121+
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "${words[*]}" -- "$cur")'
122+
echo $' return'
123+
echo $' ;;'
124+
echo $' 1)'
125+
echo $' local words=()'
126+
echo $' local option_seen=0'
127+
echo $' for completed_option in "${completed_options[@]}"; do'
128+
echo $' case "$completed_option" in'
129+
echo $' --help|-h) option_seen=1 ;;'
130+
echo $' esac'
131+
echo $' done'
132+
echo $' if ((!option_seen)); then'
133+
echo $' words+=("--help" "-h")'
134+
echo $' fi'
135+
echo $' local option_seen=0'
136+
echo $' for completed_option in "${completed_options[@]}"; do'
137+
echo $' case "$completed_option" in'
138+
echo $' --force|-f) option_seen=1 ;;'
139+
echo $' esac'
140+
echo $' done'
141+
echo $' if ((!option_seen)); then'
142+
echo $' words+=("--force" "-f")'
143+
echo $' fi'
144+
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "${words[*]}" -- "$cur")'
145+
echo $' return'
146+
echo $' ;;'
147+
echo $' 2)'
148+
echo $' local words=()'
149+
echo $' local option_seen=0'
150+
echo $' for completed_option in "${completed_options[@]}"; do'
151+
echo $' case "$completed_option" in'
152+
echo $' --help|-h) option_seen=1 ;;'
153+
echo $' esac'
154+
echo $' done'
155+
echo $' if ((!option_seen)); then'
156+
echo $' words+=("--help" "-h")'
157+
echo $' fi'
158+
echo $' local option_seen=0'
159+
echo $' for completed_option in "${completed_options[@]}"; do'
160+
echo $' case "$completed_option" in'
161+
echo $' --user|-u) option_seen=1 ;;'
162+
echo $' esac'
163+
echo $' done'
164+
echo $' if ((!option_seen)); then'
165+
echo $' words+=("--user" "-u")'
166+
echo $' fi'
167+
echo $' local option_seen=0'
168+
echo $' for completed_option in "${completed_options[@]}"; do'
169+
echo $' case "$completed_option" in'
170+
echo $' --password|-p) option_seen=1 ;;'
171+
echo $' esac'
172+
echo $' done'
173+
echo $' if ((!option_seen)); then'
174+
echo $' words+=("--password" "-p")'
175+
echo $' fi'
176+
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "${words[*]}" -- "$cur")'
177+
echo $' return'
178+
echo $' ;;'
179+
echo $' esac'
180+
echo $' fi'
70181
echo $''
71-
echo $' *)'
72-
echo $' while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_cli_completions_filter "--help --version -h -v d download u upload")" -- "$cur")'
182+
echo $' case "$route_id:$positional_index" in'
183+
echo $' 1:0)'
184+
echo $' return'
185+
echo $' ;;'
186+
echo $' 1:1)'
187+
echo $' return'
188+
echo $' ;;'
189+
echo $' 2:0)'
190+
echo $' return'
73191
echo $' ;;'
74-
echo $''
75192
echo $' esac'
76193
echo $'} &&'
77194
echo $' complete -F _cli_completions cli'

0 commit comments

Comments
 (0)