#!/bin/sh # shellcheck disable=SC2119,SC2120 # shellcheck source=../lib/load-configuration . "${0%/*}/../lib/load-configuration" checksum=$( calculate_script_checksum ) next_connection_check=0 last_seen=0 while pgrep -x 'ii' >/dev/null && \ [ "$(calculate_script_checksum)" = "${checksum}" ]; do # this avoids missing modifications during our last execution if [ "$(date +%s)" -ge ${next_connection_check} ]; then # request this more often on startup if [ ${last_seen} -ne 0 ]; then next_connection_check=$(( $(date +%s) + 60*5 )) fi echo '/NAMES #archlinux32' \ | sponge "${irc_dir}/in" fi if [ -z "${said}" ]; then # shellcheck disable=SC2046 inotifywait -t 30 -e 'CLOSE_WRITE,CLOSE' -e 'CREATE,ISDIR' $( find "${irc_dir}" \ -type f \ -name 'out' -o \ -type d ) || true fi said=$( "${base_dir}/bin/ii-answer" ) # When was the buildmaster seen the last time? last_seen=$( { echo 0 sed ' s/^\([0-9]\+\) = #archlinux32\( \S\+\)* buildmaster\( \S\+\)*$/\1/ t d ' "${irc_dir}/out" } \ | sort -n \ | tail -n1 ) # more than 10 minutes ago if [ $((last_seen + 60*10)) -lt "$(date +%s)" ]; then # reconnect! "${base_dir}/bin/ii-connect" fi done