Skip to content

Commit 0411b9a

Browse files
authored
Merge pull request #248 from DannyBen/update/completely
Update completely to version 0.5.0
2 parents bb0863b + f764a53 commit 0411b9a

File tree

9 files changed

+197
-73
lines changed

9 files changed

+197
-73
lines changed

bashly.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
1717
s.license = 'MIT'
1818
s.required_ruby_version = ">= 2.7.0"
1919

20-
s.add_runtime_dependency 'completely', '~> 0.4.3'
20+
s.add_runtime_dependency 'completely', '~> 0.5.0'
2121
s.add_runtime_dependency 'gtx', '~> 0.1.0'
2222

2323
s.add_runtime_dependency 'colsole', '~> 0.7'

examples/completions/src/lib/send_completions.sh

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,57 +6,76 @@ send_completions() {
66
echo $'# completely (https://github.com/dannyben/completely)'
77
echo $'# Modifying it manually is not recommended'
88
echo $''
9+
echo $'_cli_completions_filter() {'
10+
echo $' local words="$1"'
11+
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
12+
echo $' local result=()'
13+
echo $''
14+
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
15+
echo $' echo "$words"'
16+
echo $' '
17+
echo $' else'
18+
echo $' for word in $words; do'
19+
echo $' [[ "${word:0:1}" != "-" ]] && result+=("$word")'
20+
echo $' done'
21+
echo $''
22+
echo $' echo "${result[*]}"'
23+
echo $''
24+
echo $' fi'
25+
echo $'}'
26+
echo $''
927
echo $'_cli_completions() {'
1028
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
11-
echo $' local compline="${COMP_WORDS[@]:1:$COMP_CWORD-1}"'
29+
echo $' local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")'
30+
echo $' local compline="${compwords[*]}"'
1231
echo $''
1332
echo $' case "$compline" in'
1433
echo $' \'download\'*\'--handler\')'
15-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "curl wget" -- "$cur" )'
34+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "curl wget")" -- "$cur" )'
1635
echo $' ;;'
1736
echo $''
1837
echo $' \'upload\'*\'--user\')'
19-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
38+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
2039
echo $' ;;'
2140
echo $''
2241
echo $' \'completions\'*)'
23-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help -h" -- "$cur" )'
42+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help -h")" -- "$cur" )'
2443
echo $' ;;'
2544
echo $''
2645
echo $' \'d\'*\'--handler\')'
27-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "curl wget" -- "$cur" )'
46+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "curl wget")" -- "$cur" )'
2847
echo $' ;;'
2948
echo $''
3049
echo $' \'upload\'*\'-u\')'
31-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
50+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
3251
echo $' ;;'
3352
echo $''
3453
echo $' \'download\'*)'
35-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "--force --handler --help -f -h" -- "$cur" )'
54+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_cli_completions_filter "--force --handler --help -f -h")" -- "$cur" )'
3655
echo $' ;;'
3756
echo $''
3857
echo $' \'u\'*\'--user\')'
39-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
58+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
4059
echo $' ;;'
4160
echo $''
4261
echo $' \'upload\'*)'
43-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "--help --password --user -h -p -u CHANGELOG.md README.md" -- "$cur" )'
62+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "$(_cli_completions_filter "--help --password --user -h -p -u CHANGELOG.md README.md")" -- "$cur" )'
4463
echo $' ;;'
4564
echo $''
4665
echo $' \'u\'*\'-u\')'
47-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
66+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A user -- "$cur" )'
4867
echo $' ;;'
4968
echo $''
5069
echo $' \'d\'*)'
51-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "--force --handler --help -f -h" -- "$cur" )'
70+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_cli_completions_filter "--force --handler --help -f -h")" -- "$cur" )'
5271
echo $' ;;'
5372
echo $''
5473
echo $' \'u\'*)'
55-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "--help --password --user -h -p -u CHANGELOG.md README.md" -- "$cur" )'
74+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "$(_cli_completions_filter "--help --password --user -h -p -u CHANGELOG.md README.md")" -- "$cur" )'
5675
echo $' ;;'
5776
echo $''
5877
echo $' *)'
59-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --version -h -v completions d download u upload" -- "$cur" )'
78+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --version -h -v completions d download u upload")" -- "$cur" )'
6079
echo $' ;;'
6180
echo $''
6281
echo $' esac'

spec/approvals/cli/add/comp-function-file

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,48 @@ send_completions() {
66
echo $'# completely (https://github.com/dannyben/completely)'
77
echo $'# Modifying it manually is not recommended'
88
echo $''
9+
echo $'_cli_completions_filter() {'
10+
echo $' local words="$1"'
11+
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
12+
echo $' local result=()'
13+
echo $''
14+
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
15+
echo $' echo "$words"'
16+
echo $' '
17+
echo $' else'
18+
echo $' for word in $words; do'
19+
echo $' [[ "${word:0:1}" != "-" ]] && result+=("$word")'
20+
echo $' done'
21+
echo $''
22+
echo $' echo "${result[*]}"'
23+
echo $''
24+
echo $' fi'
25+
echo $'}'
26+
echo $''
927
echo $'_cli_completions() {'
1028
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
11-
echo $' local compline="${COMP_WORDS[@]:1:$COMP_CWORD-1}"'
29+
echo $' local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")'
30+
echo $' local compline="${compwords[*]}"'
1231
echo $''
1332
echo $' case "$compline" in'
1433
echo $' \'download\'*)'
15-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--force --help -f -h" -- "$cur" )'
34+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur" )'
1635
echo $' ;;'
1736
echo $''
1837
echo $' \'upload\'*)'
19-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --password --user -h -p -u" -- "$cur" )'
38+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur" )'
2039
echo $' ;;'
2140
echo $''
2241
echo $' \'d\'*)'
23-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--force --help -f -h" -- "$cur" )'
42+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur" )'
2443
echo $' ;;'
2544
echo $''
2645
echo $' \'u\'*)'
27-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --password --user -h -p -u" -- "$cur" )'
46+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur" )'
2847
echo $' ;;'
2948
echo $''
3049
echo $' *)'
31-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --version -h -v d download u upload" -- "$cur" )'
50+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --version -h -v d download u upload")" -- "$cur" )'
3251
echo $' ;;'
3352
echo $''
3453
echo $' esac'

spec/approvals/cli/add/comp-script-file

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,48 @@
44
# completely (https://github.com/dannyben/completely)
55
# Modifying it manually is not recommended
66

7+
_cli_completions_filter() {
8+
local words="$1"
9+
local cur=${COMP_WORDS[COMP_CWORD]}
10+
local result=()
11+
12+
if [[ "${cur:0:1}" == "-" ]]; then
13+
echo "$words"
14+
15+
else
16+
for word in $words; do
17+
[[ "${word:0:1}" != "-" ]] && result+=("$word")
18+
done
19+
20+
echo "${result[*]}"
21+
22+
fi
23+
}
24+
725
_cli_completions() {
826
local cur=${COMP_WORDS[COMP_CWORD]}
9-
local compline="${COMP_WORDS[@]:1:$COMP_CWORD-1}"
27+
local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")
28+
local compline="${compwords[*]}"
1029

1130
case "$compline" in
1231
'download'*)
13-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--force --help -f -h" -- "$cur" )
32+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur" )
1433
;;
1534

1635
'upload'*)
17-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --password --user -h -p -u" -- "$cur" )
36+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur" )
1837
;;
1938

2039
'd'*)
21-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--force --help -f -h" -- "$cur" )
40+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--force --help -f -h")" -- "$cur" )
2241
;;
2342

2443
'u'*)
25-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --password --user -h -p -u" -- "$cur" )
44+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --password --user -h -p -u")" -- "$cur" )
2645
;;
2746

2847
*)
29-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --version -h -v d download u upload" -- "$cur" )
48+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_cli_completions_filter "--help --version -h -v d download u upload")" -- "$cur" )
3049
;;
3150

3251
esac

spec/approvals/completions/function

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,32 @@ custom_name() {
55
echo $'# completely (https://github.com/dannyben/completely)'
66
echo $'# Modifying it manually is not recommended'
77
echo $''
8+
echo $'_get_completions_filter() {'
9+
echo $' local words="$1"'
10+
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
11+
echo $' local result=()'
12+
echo $''
13+
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
14+
echo $' echo "$words"'
15+
echo $' '
16+
echo $' else'
17+
echo $' for word in $words; do'
18+
echo $' [[ "${word:0:1}" != "-" ]] && result+=("$word")'
19+
echo $' done'
20+
echo $''
21+
echo $' echo "${result[*]}"'
22+
echo $''
23+
echo $' fi'
24+
echo $'}'
25+
echo $''
826
echo $'_get_completions() {'
927
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
10-
echo $' local compline="${COMP_WORDS[@]:1:$COMP_CWORD-1}"'
28+
echo $' local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")'
29+
echo $' local compline="${compwords[*]}"'
1130
echo $''
1231
echo $' case "$compline" in'
1332
echo $' *)'
14-
echo $' while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "--force --help --verbose --version -h -v" -- "$cur" )'
33+
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_get_completions_filter "--force --help --verbose --version -h -v")" -- "$cur" )'
1534
echo $' ;;'
1635
echo $''
1736
echo $' esac'

spec/approvals/completions/script

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,60 @@
44
# completely (https://github.com/dannyben/completely)
55
# Modifying it manually is not recommended
66

7+
_say_completions_filter() {
8+
local words="$1"
9+
local cur=${COMP_WORDS[COMP_CWORD]}
10+
local result=()
11+
12+
if [[ "${cur:0:1}" == "-" ]]; then
13+
echo "$words"
14+
15+
else
16+
for word in $words; do
17+
[[ "${word:0:1}" != "-" ]] && result+=("$word")
18+
done
19+
20+
echo "${result[*]}"
21+
22+
fi
23+
}
24+
725
_say_completions() {
826
local cur=${COMP_WORDS[COMP_CWORD]}
9-
local compline="${COMP_WORDS[@]:1:$COMP_CWORD-1}"
27+
local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")
28+
local compline="${compwords[*]}"
1029

1130
case "$compline" in
1231
'goodbye universe'*'--color')
13-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "green red" -- "$cur" )
32+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "green red")" -- "$cur" )
1433
;;
1534

1635
'goodbye universe'*'--path')
17-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
36+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
1837
;;
1938

2039
'goodbye universe'*'-c')
21-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "green red" -- "$cur" )
40+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "green red")" -- "$cur" )
2241
;;
2342

2443
'goodbye universe'*)
25-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(git branch) --color --help --path --verbose -c -h -v" -- "$cur" )
44+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "$(git branch) --color --help --path --verbose -c -h -v")" -- "$cur" )
2645
;;
2746

2847
'hello world'*)
29-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "--force --help --verbose -h" -- "$cur" )
48+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -A user -W "$(_say_completions_filter "--force --help --verbose -h")" -- "$cur" )
3049
;;
3150

3251
'goodbye'*)
33-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help -h universe" -- "$cur" )
52+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "--help -h universe")" -- "$cur" )
3453
;;
3554

3655
'hello'*)
37-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help -h world" -- "$cur" )
56+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "--help -h world")" -- "$cur" )
3857
;;
3958

4059
*)
41-
while read; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "--help --version -h -v goodbye hello" -- "$cur" )
60+
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_say_completions_filter "--help --version -h -v goodbye hello")" -- "$cur" )
4261
;;
4362

4463
esac

0 commit comments

Comments
 (0)