bin: add process_batch for processing updates from file

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2021-02-27 16:57:07 +01:00
parent 84ff8cec15
commit 941598d01f
1 changed files with 70 additions and 0 deletions

70
bin/process_batch.sh Executable file
View File

@ -0,0 +1,70 @@
#!/bin/bash
# shellcheck disable=SC1090,SC2034,SC2059
#===============================================================================
#
# FILE: bin/process_batch.sh
#
USAGE='process_update.sh [-h|--help] -w|--watch [-n|--lines n] [file] [debug]'
#
# DESCRIPTION: processes last 10 telegram updates in file, one update per line
#
# -w --watch watch for new updates added to file
# -n --lines read only last "n" lines
# file to read updates from
# empty means read from webhook pipe
#
# -h - display short help
# --help - this help
#
# LICENSE: WTFPLv2 http://www.wtfpl.net/txt/copying/
# AUTHOR: KayM (gnadelwartz), kay@rrr.de
# CREATED: 27.02.2021 13:14
#
#### $$VERSION$$ v1.45-dev-52-g84ff8ce
#===============================================================================
####
# parse args
COMMAND="process_multi_updates"
lines="-n 10"
case "$1" in
"-f"|"--follow")
follow="-f"
shift
;;
"-n"|"--lines")
lines="-n $2"
shift 2
;;
esac
# set bashbot environment
source "${0%/*}/bashbot_env.inc.sh" "debug" # debug
print_help "${1:-nix}"
# empty file is webhook
file="${WEBHOOK}"
[ -n "$1" ] && file="$1"
if [[ ! -r "${file}" || -d "${file}" ]]; then
printf "%b\n" "File ${GREY}${file}${NC} is not readable or is a directory."
exit 1
fi
####
# ready, do stuff here -----
trap 'kill $(jobs -p) 2>/dev/null' EXIT HUP QUIT
# shellcheck disable=SC2086,SC2248
tail ${follow} ${lines} "${file}" |\
while IFS="" read -r input
do
# read json from stdin and convert update format
json='{"result": ['"${input}"']}'
UPDATE="$(${JSONSHFILE} -b -n <<<"${json}" 2>/dev/null)"
# process telegram update
"${COMMAND}" "$1"
done