Make logs appendable

This commit is contained in:
Nick Chambers 2021-06-23 02:51:49 -05:00
parent a8653ad52b
commit c4402a1e88
1 changed files with 15 additions and 5 deletions

20
rowbot
View File

@ -116,6 +116,7 @@ server=irc.libera.chat port=6667 tls=no client_cert=
nick=rowbot-dev ident=rowbot realname=rowbot chan=
trigger=\` fact_root=. reload=no level=info log_fd=1 log=
sys_root=sysfacts owner=${USER:-uplime} dev=no markov_seed=
overwrite=no
###
# apply custom config
@ -179,7 +180,11 @@ for opt in "${config[@]}"; do
done
if [[ $log && $reload = no ]]; then
exec {log_fd}>"$log"
if [[ $overwrite = yes ]]; then
exec {log_fd}>"$log"
else
exec {log_fd}>>"$log"
fi
fi
###
@ -221,7 +226,7 @@ if [[ $reload = yes ]]; then
reload_vars=(
nick ident host level log log_fd alarm_pid tls_pid in_sock
out_sock sock_dir sys_root fact_root dev trigger registered
keep_trying desired_nick
keep_trying desired_nick overwrite
)
for var in "${reload_vars[@]}"; do
@ -296,7 +301,12 @@ config-reload() {
if (( log_fd != 1 )); then
debug "closing and re-opening log"
exec {log_fd}>&-
exec {log_fd}>"$log"
if [[ $overwrite = yes ]]; then
exec {log_fd}>"$log"
else
exec {log_fd}>>"$log"
fi
fi
if [[ -v markov_chains[@] ]]; then
@ -310,7 +320,7 @@ config-reload() {
reload_vars=(
nick ident host level log log_fd alarm_pid tls_pid in_sock
out_sock sock_dir sys_root fact_root dev trigger registered
keep_trying desired_nick
keep_trying desired_nick overwrite
)
for env_var in "${reload_vars[@]}"; do
@ -852,7 +862,7 @@ hook_cmd_control_panel() {
reload_vars=(
nick ident host level log log_fd alarm_pid tls_pid in_sock
out_sock sock_dir sys_root fact_root dev trigger registered
keep_trying desired_nick to
keep_trying desired_nick to overwrite
)
for env_var in "${reload_vars[@]}"; do