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