bin: process-batch: implement startbot for webhook

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2021-02-28 16:51:28 +01:00
parent dda86e3496
commit 5dd24c3958
3 changed files with 22 additions and 8 deletions

View File

@ -30,7 +30,7 @@ BOTCOMMANDS="-h help init start stop status suspendback resumeback killb
# 8 - curl/wget missing # 8 - curl/wget missing
# 10 - not bash! # 10 - not bash!
# #
#### $$VERSION$$ v1.45-dev-48-gf4d45d8 #### $$VERSION$$ v1.45-dev-54-gdda86e3
################################################################## ##################################################################
# are we running in a terminal? # are we running in a terminal?
@ -830,6 +830,7 @@ if [ -z "${SOURCE}" ]; then
# finally starts the read update loop, internal use only # finally starts the read update loop, internal use only
"startbot" ) "startbot" )
_exec_if_function start_bot "$2" _exec_if_function start_bot "$2"
_exec_if_function get_updates "$2"
debug_checks "end startbot" "$@" debug_checks "end startbot" "$@"
exit exit
;; ;;

View File

@ -4,10 +4,11 @@
# #
# FILE: bin/process_batch.sh # FILE: bin/process_batch.sh
# #
USAGE='process_update.sh [-h|--help] -w|--watch [-n|--lines n] [file] [debug]' USAGE='process_update.sh [-h|--help] [-s|--startbot] [-w|--watch] [-n|--lines n] [file] [debug]'
# #
# DESCRIPTION: processes last 10 telegram updates in file, one update per line # DESCRIPTION: processes last 10 telegram updates in file, one update per line
# #
# -s --startbot load addons, start TIMER, trigger startup actions
# -w --watch watch for new updates added to file # -w --watch watch for new updates added to file
# -n --lines read only last "n" lines # -n --lines read only last "n" lines
# file to read updates from # file to read updates from
@ -20,7 +21,7 @@ USAGE='process_update.sh [-h|--help] -w|--watch [-n|--lines n] [file] [debug]'
# AUTHOR: KayM (gnadelwartz), kay@rrr.de # AUTHOR: KayM (gnadelwartz), kay@rrr.de
# CREATED: 27.02.2021 13:14 # CREATED: 27.02.2021 13:14
# #
#### $$VERSION$$ v1.45-dev-53-g941598d #### $$VERSION$$ v1.45-dev-54-gdda86e3
#=============================================================================== #===============================================================================
#### ####
@ -29,6 +30,10 @@ COMMAND="process_multi_updates"
lines="-n 10" lines="-n 10"
case "$1" in case "$1" in
"-s"|"--startbot")
startbot="yes"
shift
;;
"-f"|"--follow") "-f"|"--follow")
follow="-f" follow="-f"
shift shift
@ -43,20 +48,29 @@ esac
source "${0%/*}/bashbot_env.inc.sh" "debug" # debug source "${0%/*}/bashbot_env.inc.sh" "debug" # debug
print_help "${1:-nix}" print_help "${1:-nix}"
# empty file is webhook # empty file is webhook
file="${WEBHOOK}" file="${WEBHOOK}"
[ -n "$1" ] && file="$1" [ -n "$1" ] && file="$1"
# start bot
if [ -n "${startbot}" ]; then
# warn when starting bot without pipe
[ -p "${WEBHOOK}" ] || printf "%b\n" "${ORANGE}Warning${NC}: File is not a pipe:${GREY} ${file##*/}${NC}"
start_bot "$2"
fi
# check file exist
if [[ ! -r "${file}" || -d "${file}" ]]; then if [[ ! -r "${file}" || -d "${file}" ]]; then
printf "%b\n" "File ${GREY}${file}${NC} is not readable or is a directory." printf "%b\n" "${RED}Error${NC}: File not readable:${GREY} ${file}${NC}."
exit 1 exit 1
fi fi
#### ####
# ready, do stuff here ----- # ready, do stuff here -----
# kill all sub processes on exit
trap 'kill $(jobs -p) 2>/dev/null' EXIT HUP QUIT trap 'kill $(jobs -p) 2>/dev/null' EXIT HUP QUIT
# use tail to read appended updates
# shellcheck disable=SC2086,SC2248 # shellcheck disable=SC2086,SC2248
tail ${follow} ${lines} "${file}" |\ tail ${follow} ${lines} "${file}" |\
while IFS="" read -r input while IFS="" read -r input

View File

@ -4,7 +4,7 @@
# File: processUpdates.sh # File: processUpdates.sh
# Note: DO NOT EDIT! this file will be overwritten on update # Note: DO NOT EDIT! this file will be overwritten on update
# #
#### $$VERSION$$ v1.45-dev-38-g882efa8 #### $$VERSION$$ v1.45-dev-54-gdda86e3
################################################################## ##################################################################
############## ##############
@ -301,7 +301,7 @@ start_bot() {
log_debug "${DEBUGMSG}"; DEBUGMSG="$1" log_debug "${DEBUGMSG}"; DEBUGMSG="$1"
[[ "${DEBUGMSG}" == "xdebug"* ]] && set -x [[ "${DEBUGMSG}" == "xdebug"* ]] && set -x
# cleaup old pipes and empty logfiles # cleaup old pipes and empty logfiles
find "${DATADIR}" -type p -delete find "${DATADIR}" -type p -not -name "webhook-fifo-*" -delete
find "${DATADIR}" -size 0 -name "*.log" -delete find "${DATADIR}" -size 0 -name "*.log" -delete
# load addons on startup # load addons on startup
for addons in "${ADDONDIR:-.}"/*.sh ; do for addons in "${ADDONDIR:-.}"/*.sh ; do
@ -330,7 +330,6 @@ start_bot() {
send_normal_message "$(getConfigKey "botadmin")" "Bot $(getConfigKey "botname") started ..." & send_normal_message "$(getConfigKey "botadmin")" "Bot $(getConfigKey "botname") started ..." &
########## ##########
# bot is ready, start processing updates ... # bot is ready, start processing updates ...
get_updates "${DEBUGMSG}"
} }