Skip to content

Commit a42e547

Browse files
authored
Merge pull request #570 from DannyBen/fix/variables-scope
Fix array variables scope
2 parents bb9424b + ed7f240 commit a42e547

File tree

7 files changed

+50
-15
lines changed

7 files changed

+50
-15
lines changed

examples/variables/README.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@ name: cli
2323
help: Sample application demonstrating the use of variables
2424
version: 0.1.0
2525

26-
# The `build_number` variable will be available globally
26+
# The `build_number` and `environments` variables will be available globally
2727
variables:
2828
- name: build_number
2929
value: 1337
30+
- name: environments
31+
value: [dev, stage, production]
3032

3133
commands:
3234
- name: download
@@ -70,6 +72,10 @@ echo "download_sources:"
7072
for value in "${download_sources[@]}"; do
7173
echo "- $value"
7274
done
75+
echo "environments:"
76+
for value in "${environments[@]}"; do
77+
echo "- $value"
78+
done
7379
````
7480

7581
## `src/compress_command.sh`
@@ -80,7 +86,10 @@ echo "zip_options:"
8086
for key in "${!zip_options[@]}"; do
8187
echo " $key: ${zip_options[$key]}"
8288
done
83-
89+
echo "environments:"
90+
for value in "${environments[@]}"; do
91+
echo "- $value"
92+
done
8493
````
8594

8695

@@ -94,6 +103,10 @@ output_folder: output
94103
download_sources:
95104
- youtube
96105
- instagram
106+
environments:
107+
- dev
108+
- stage
109+
- production
97110

98111

99112
````
@@ -105,6 +118,10 @@ build_number: 1337
105118
zip_options:
106119
compression_level: fast
107120
pattern: *.json
121+
environments:
122+
- dev
123+
- stage
124+
- production
108125

109126

110127
````

examples/variables/src/bashly.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ name: cli
22
help: Sample application demonstrating the use of variables
33
version: 0.1.0
44

5-
# The `build_number` variable will be available globally
5+
# The `build_number` and `environments` variables will be available globally
66
variables:
77
- name: build_number
88
value: 1337
9+
- name: environments
10+
value: [dev, stage, production]
911

1012
commands:
1113
- name: download

examples/variables/src/compress_command.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@ echo "zip_options:"
33
for key in "${!zip_options[@]}"; do
44
echo " $key: ${zip_options[$key]}"
55
done
6+
echo "environments:"
7+
for value in "${environments[@]}"; do
8+
echo "- $value"
9+
done

examples/variables/src/download_command.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@ echo "output_folder: $output_folder"
33
echo "download_sources:"
44
for value in "${download_sources[@]}"; do
55
echo "- $value"
6+
done
7+
echo "environments:"
8+
for value in "${environments[@]}"; do
9+
echo "- $value"
610
done

lib/bashly/views/command/run.gtx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
= view_marker
22

33
> run() {
4-
> declare -A args=()
5-
> declare -A deps=()
6-
> declare -a other_args=()
7-
> declare -a env_var_names=()
8-
> declare -a input=()
4+
> declare -g -A args=()
5+
> declare -g -A deps=()
6+
> declare -g -a other_args=()
7+
> declare -g -a env_var_names=()
8+
> declare -g -a input=()
99
if has_unique_args_or_flags?
10-
> declare -A unique_lookup=()
10+
> declare -g -A unique_lookup=()
1111
end
1212
> normalize_input "$@"
1313
> parse_requirements "${input[@]}"

lib/bashly/views/variable/definition.gtx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33
case value
44
when Array
55
if value.empty?
6-
> declare -a {{ name }}=()
6+
> declare -g -a {{ name }}=()
77
else
8-
> declare -a {{ name }}=(
8+
> declare -g -a {{ name }}=(
99
value.each do |v|
1010
> "{{ v }}"
1111
end
1212
> )
1313
end
1414
when Hash
1515
if value.empty?
16-
> declare -A {{ name }}=()
16+
> declare -g -A {{ name }}=()
1717
else
18-
> declare -A {{ name }}=(
18+
> declare -g -A {{ name }}=(
1919
value.each do |k, v|
2020
> ["{{ k }}"]="{{ v }}"
2121
end
2222
> )
2323
end
2424
when String, NilClass
25-
> {{ name }}="{{ value }}"
25+
> declare -g {{ name }}="{{ value }}"
2626
else
27-
> {{ name }}={{ value }}
27+
> declare -g {{ name }}={{ value }}
2828
end

spec/approvals/examples/variables

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,16 @@ output_folder: output
1010
download_sources:
1111
- youtube
1212
- instagram
13+
environments:
14+
- dev
15+
- stage
16+
- production
1317
+ ./cli compress
1418
build_number: 1337
1519
zip_options:
1620
compression_level: fast
1721
pattern: *.json
22+
environments:
23+
- dev
24+
- stage
25+
- production

0 commit comments

Comments
 (0)