6 changed files with 77 additions and 100 deletions
-
46lib/ansi.bash
-
33test/ansi.test.bash
-
19test/increment.test.bash
-
47test/stub/ansi_error.bash
-
0test/stub/associative.bash
-
32test/subarrays.test.bash
@ -1,33 +0,0 @@ |
|||||
#!/usr/bin/env miaou-bash |
|
||||
|
|
||||
. "$MIAOU_BASH_DIR/lib/ansi.bash" |
|
||||
|
|
||||
TYPE='SUBSHELL TERM' |
|
||||
PAYLOAD='blabla' |
|
||||
|
|
||||
stack_sources=('file.bash' './lib/utility.bash' 'file.bash') |
|
||||
stack_lines=(18 56 12) |
|
||||
stack_functions=('f2' 'f1' '<main>') |
|
||||
|
|
||||
BG=RED |
|
||||
FG=BLACK |
|
||||
PADDING=2 |
|
||||
content=$(style_ansi "${TYPE}") |
|
||||
content=$(style_padding "$content") |
|
||||
detail=$(BG=BLACK style_padding "${PAYLOAD}") |
|
||||
style_block "$content$detail" |
|
||||
|
|
||||
# block continuation |
|
||||
tput sc |
|
||||
tput cuu 1 |
|
||||
style_ansi "\t╦" |
|
||||
tput rc |
|
||||
|
|
||||
style_ansi "\t║" |
|
||||
echo |
|
||||
|
|
||||
for i in "${!stack_sources[@]}"; do |
|
||||
style_ansi "\t╟" |
|
||||
# echo "─⟶ ${sources[$i]}:${lines[$i]} in ${functions[$i]}" |
|
||||
printf "─⟶ %40s\t%s\n" "${stack_sources[$i]}:${stack_lines[$i]}" "${stack_functions[$i]}" |
|
||||
done |
|
||||
@ -1,19 +0,0 @@ |
|||||
#!/usr/bin/env miaou-bash |
|
||||
|
|
||||
function f1 { |
|
||||
if [[ -v nested_count ]]; then |
|
||||
>/dev/tty echo already defined $nested_count |
|
||||
((nested_count++)) |
|
||||
else |
|
||||
>/dev/tty echo brand new |
|
||||
nested_count=1 |
|
||||
fi |
|
||||
echo $nested_count |
|
||||
} |
|
||||
|
|
||||
echo "v=$(f1)" |
|
||||
echo "v=$(f1)" |
|
||||
echo "v=$(f1)" |
|
||||
f1 |
|
||||
f1 |
|
||||
echo $nested_count |
|
||||
@ -0,0 +1,47 @@ |
|||||
|
#!/usr/bin/env miaou-bash |
||||
|
|
||||
|
. "$MIAOU_BASH_DIR/lib/ansi.bash" |
||||
|
|
||||
|
TYPE='SUBSHELL TERM' |
||||
|
PAYLOAD='blabla' |
||||
|
stack_sources=('file.bash' './lib/utility.bash' 'file.bash') |
||||
|
stack_lines=(18 56 12) |
||||
|
stack_functions=('f2' 'f1' '<main>') |
||||
|
|
||||
|
function dump_failure { |
||||
|
BG=RED |
||||
|
FG=BLACK |
||||
|
PADDING=2 |
||||
|
|
||||
|
content=$(style_ansi "${TYPE}") |
||||
|
content=$(style_padding "$content") |
||||
|
detail=$(BG=BLACK style_padding "${PAYLOAD}") |
||||
|
style_block "$content$detail" |
||||
|
|
||||
|
ansi_reset |
||||
|
} |
||||
|
|
||||
|
function dump_traces { |
||||
|
local optional location |
||||
|
# block continuation |
||||
|
tput sc |
||||
|
tput cuu 1 |
||||
|
BG=RED FG=BLACK style_ansi "\t╦" |
||||
|
tput rc |
||||
|
|
||||
|
FG=RED style_ansi "\t║\n" |
||||
|
|
||||
|
optional=false |
||||
|
for i in "${!stack_sources[@]}"; do |
||||
|
FG=RED style_ansi "\t╟─⟶" |
||||
|
location="${stack_sources[$i]}:${stack_lines[$i]}" |
||||
|
is_true "$optional" && |
||||
|
location=$(FG=GRAY STYLE=ITALIC style_ansi "\t$location") || # FIXME: \t should not be required! |
||||
|
location=$(STYLE=ITALIC style_ansi "$location") |
||||
|
printf "%40s\t%s\n" "${location}" "${stack_functions[$i]}" |
||||
|
optional=true |
||||
|
done |
||||
|
} |
||||
|
|
||||
|
dump_failure |
||||
|
dump_traces |
||||
@ -1,32 +0,0 @@ |
|||||
#!/usr/bin/env miaou-bash |
|
||||
|
|
||||
ArrayOfArray_1=("Alan" "24") |
|
||||
ArrayOfArray_2=("Walker" "31") |
|
||||
MainArray=() |
|
||||
|
|
||||
array_count=0 |
|
||||
|
|
||||
array_count=$(( array_count + 1 )) |
|
||||
array_name="array_$array_count" |
|
||||
declare -a "$array_name" |
|
||||
declare -n ref="$array_name" |
|
||||
ref+=("Bernard") |
|
||||
ref+=(46) |
|
||||
MainArray+=(ref[@]) |
|
||||
|
|
||||
array_count=$(( array_count + 1 )) |
|
||||
array_name="array_$(( array_count + 1 ))" |
|
||||
declare -a "$array_name" |
|
||||
declare -n ref2="$array_name" |
|
||||
ref2+=("Ferland") |
|
||||
ref2+=(17) |
|
||||
MainArray+=(ref2[@]) |
|
||||
|
|
||||
|
|
||||
|
|
||||
for sub_array in "${MainArray[@]}"; do |
|
||||
elements=("${!sub_array}") # Get the elements of the sub-array |
|
||||
name=${elements[0]} |
|
||||
age=${elements[1]} |
|
||||
echo "${name,,} $age" |
|
||||
done |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue