ansi_error
This commit is contained in:
+30
-16
@@ -4,17 +4,23 @@
|
|||||||
PADDING=0
|
PADDING=0
|
||||||
ANSI_RESET='\e[0m'
|
ANSI_RESET='\e[0m'
|
||||||
|
|
||||||
|
declare -A STYLE_VARIANTS
|
||||||
|
STYLE_VARIANTS[BOLD]='\e[1m'
|
||||||
|
STYLE_VARIANTS[ITALIC]='\e[3m'
|
||||||
|
STYLE_VARIANTS[UNDERLINE]='\e[4m'
|
||||||
|
STYLE_VARIANTS[STRIKETHROUGH]='\e[9m'
|
||||||
|
|
||||||
declare -A FG_COLORS
|
declare -A FG_COLORS
|
||||||
FG_COLORS["BLACK"]='\e[30m'
|
FG_COLORS[BLACK]='\e[30m'
|
||||||
FG_COLORS["RED"]='\e[31m'
|
FG_COLORS[RED]='\e[31m'
|
||||||
FG_COLORS["GREEN"]='\e[32m'
|
FG_COLORS[GREEN]='\e[32m'
|
||||||
FG_COLORS["YELLOW"]='\e[33m'
|
FG_COLORS[YELLOW]='\e[33m'
|
||||||
FG_COLORS["BLUE"]='\e[34m'
|
FG_COLORS[BLUE]='\e[34m'
|
||||||
FG_COLORS["PURPLE"]='\e[35m'
|
FG_COLORS[PURPLE]='\e[35m'
|
||||||
FG_COLORS["CYAN"]='\e[36m'
|
FG_COLORS[CYAN]='\e[36m'
|
||||||
FG_COLORS["WHITE"]='\e[37m'
|
FG_COLORS[WHITE]='\e[37m'
|
||||||
FG_COLORS["GRAY"]='\e[90m'
|
FG_COLORS[GRAY]='\e[90m'
|
||||||
FG_COLORS["MAGENTA"]='\e[95m'
|
FG_COLORS[MAGENTA]='\e[95m'
|
||||||
|
|
||||||
declare -A BG_COLORS
|
declare -A BG_COLORS
|
||||||
BG_COLORS["BLACK"]='\e[40m'
|
BG_COLORS["BLACK"]='\e[40m'
|
||||||
@@ -30,6 +36,11 @@ BG_COLORS["WHITE"]='\e[47m'
|
|||||||
|
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
|
|
||||||
|
function ansi_reset {
|
||||||
|
PADDING=0
|
||||||
|
unset PADDING_LEFT PADDING_RIGHT BG FG
|
||||||
|
}
|
||||||
|
|
||||||
function ansi_length {
|
function ansi_length {
|
||||||
local clean_text
|
local clean_text
|
||||||
clean_text=$(echo "$1" | sed 's/\x1B\[[0-9;]*m//g')
|
clean_text=$(echo "$1" | sed 's/\x1B\[[0-9;]*m//g')
|
||||||
@@ -54,6 +65,10 @@ function _style_fg {
|
|||||||
[[ -n $1 ]] && echo "${FG_COLORS[$1]}" || true
|
[[ -n $1 ]] && echo "${FG_COLORS[$1]}" || true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _style_variant {
|
||||||
|
[[ -n $1 ]] && echo "${STYLE_VARIANTS[$1]}" || true
|
||||||
|
}
|
||||||
|
|
||||||
function _style_bg {
|
function _style_bg {
|
||||||
if [[ -n "$1" ]]; then
|
if [[ -n "$1" ]]; then
|
||||||
[[ -v BG_COLORS[$1] ]] && echo "${BG_COLORS[$1]}" && return
|
[[ -v BG_COLORS[$1] ]] && echo "${BG_COLORS[$1]}" && return
|
||||||
@@ -63,13 +78,12 @@ function _style_bg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function style_ansi {
|
function style_ansi {
|
||||||
local fg bg
|
local fg bg variant
|
||||||
fg=$(_style_fg "${FG:-}")
|
fg=$(_style_fg "${FG:-}") && [[ -n $fg ]] && builtin echo -en "$fg"
|
||||||
bg=$(_style_bg "${BG:-}")
|
bg=$(_style_bg "${BG:-}") && [[ -n $bg ]] && builtin echo -en "$bg"
|
||||||
[[ -n $fg ]] && builtin echo -en "$fg"
|
variant=$(_style_variant "${STYLE:-}") && [[ -n $variant ]] && builtin echo -en "$variant"
|
||||||
[[ -n $bg ]] && builtin echo -en "$bg"
|
|
||||||
builtin echo -en "$1"
|
builtin echo -en "$1"
|
||||||
[[ -n $fg || -n $bg ]] && builtin echo -en "$ANSI_RESET"
|
[[ -n $fg || -n $bg || -n $variant ]] && builtin echo -en "$ANSI_RESET"
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
Executable
+47
@@ -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
|
|
||||||
Reference in New Issue
Block a user