Manage states that have not resolved
This commit is contained in:
parent
58ba1cf3d7
commit
19ad647d8a
28
rowbot
28
rowbot
|
@ -26,6 +26,10 @@ put_assoc_array() {
|
|||
}
|
||||
|
||||
get_assoc_array() {
|
||||
if [[ ! -v $1 ]]; then
|
||||
declare -gA "$1"
|
||||
fi
|
||||
|
||||
declare -n assoc_array=$1
|
||||
declare -n scalar=RB_AA_${1^^}
|
||||
|
||||
|
@ -344,8 +348,22 @@ state_resolve() {
|
|||
}
|
||||
|
||||
state_put() {
|
||||
local ns=${NS-global}
|
||||
local ns=${NS-global} managed found=0
|
||||
declare -gA __rowbot_state_store_"$ns"
|
||||
|
||||
if [[ $ns != global ]]; then
|
||||
for managed in "${states_managed[@]}"; do
|
||||
if [[ $managed = "$ns" ]]; then
|
||||
found=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if (( !found )); then
|
||||
states_managed+=( "$ns" )
|
||||
fi
|
||||
fi
|
||||
|
||||
# The `ns_config` variable is a reference to an array
|
||||
# shellcheck disable=SC2178
|
||||
declare -n ns_config=__rowbot_state_store_"$ns"
|
||||
|
@ -403,6 +421,7 @@ on_sys_before_999_state() {
|
|||
local managed
|
||||
|
||||
for managed in "${states_managed[@]}"; do
|
||||
declare -p __rowbot_state_store_"$managed"
|
||||
put_assoc_array __rowbot_state_store_"$managed"
|
||||
done
|
||||
|
||||
|
@ -414,6 +433,7 @@ on_sys_after_001_state() {
|
|||
get_array states_managed
|
||||
|
||||
for managed in "${states_managed[@]}"; do
|
||||
declare -gA __rowbot_state_store_"$managed"
|
||||
get_assoc_array __rowbot_state_store_"$managed"
|
||||
done
|
||||
}
|
||||
|
@ -575,11 +595,11 @@ on_sys_init_015_net() {
|
|||
NS=net DEFAULT=irc.libera.chat state_resolve server
|
||||
NS=net DEFAULT=no state_resolve tls
|
||||
|
||||
if ! NS=net QUIET="" state_get tls; then
|
||||
NS=net DEFAULT=6667 state_resolve port
|
||||
else
|
||||
if NS=net QUIET="" state_get tls; then
|
||||
NS=net DEFAULT=6697 state_resolve port
|
||||
NS=net state_resolve client-cert
|
||||
else
|
||||
NS=net DEFAULT=6667 state_resolve port
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue