From 1458b2b562bb0d2e0328bae45480bbbb635b71f2 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 22 Aug 2026 10:41:25 +0800 Subject: Install scripts, run file for spool processor. --- sub.sh | 100 ----------------------------------------------------------------- 1 file changed, 100 deletions(-) delete mode 100755 sub.sh (limited to 'sub.sh') diff --git a/sub.sh b/sub.sh deleted file mode 100755 index 3d68184..0000000 --- a/sub.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/ksh -# OpenBSD ksh daemon script to process remote spool files over SSH - -# Fall back to the running user's home if $HOME is unset -USER_HOME="${HOME:-$(eval echo "~${USER}")}" -SSH_CONFIG="${USER_HOME}/.ssh/config" - -SSH_HOST="lex-spool" -SPOOL_DIR="/var/www/var/lex/spool/new" -DICT_DIR="/var/www/var/lex/dict" -SOCKET_PATH="/var/run/lexd/sock" -SLEEP_INTERVAL=5 - -log_err() { - logger -t spool_proc -p daemon.err "$1" -} - -log_info() { - logger -t spool_proc -p daemon.info "$1" -} - -while true; do - # Fetch one file - SPOOL_FILE=$(ssh -F "${SSH_CONFIG}" -n "${SSH_HOST}" \ - "ls -1 '${SPOOL_DIR}' 2>/dev/null | head -n 1") - - if [ $? -ne 0 ]; then - log_err "Failed connection attempt to ${SSH_HOST}" - sleep "${SLEEP_INTERVAL}" - continue - fi - - # If spool is empty, wait and retry - if [ -z "${SPOOL_FILE}" ]; then - sleep "${SLEEP_INTERVAL}" - continue - fi - - ( - set -e - - # Fetch remote spool file content - raw_prompt=$(ssh -F "${SSH_CONFIG}" -n "${SSH_HOST}" \ - "cat '${SPOOL_DIR}/${SPOOL_FILE}'") - - if [ -z "${raw_prompt}" ]; then - log_err "Empty spool file: ${SPOOL_FILE}" - exit 1 - fi - - # Log truncated input string (up to 60 characters) - trunc_prompt=$(print -r -- "${raw_prompt}" | cut -c1-60) - log_info "Processing: \"${trunc_prompt}\"" - - # Pass prompt to socket - response=$(print -r -- "${raw_prompt}" | nc -w 3 -U "${SOCKET_PATH}") - - if [ -z "${response}" ]; then - log_err "Empty socket response for: ${SPOOL_FILE}" - exit 1 - fi - - # Extract first word (lowercased) - target_word=$(print -r -- "${response}" \ - | awk '{print tolower($1); exit}') - - if [ -z "${target_word}" ]; then - log_err "No target filename for: ${SPOOL_FILE}" - exit 1 - fi - - # Validate target word - case "${target_word}" in - *[!a-z-]*) - log_err "Invalid word '${target_word}': ${SPOOL_FILE}" - exit 1 - ;; - [!a-z]*|*[!a-z]) - log_err "Bad bounds '${target_word}': ${SPOOL_FILE}" - exit 1 - ;; - esac - - target_file="${DICT_DIR}/${target_word}" - - # Write remote dict file & remove spool file - print -r -- "${response}" \ - | ssh -F "${SSH_CONFIG}" "${SSH_HOST}" \ - "cat > '${target_file}' && rm -f '${SPOOL_DIR}/${SPOOL_FILE}'" - - log_info "Finished processing: ${target_word}" - ) - - if [ $? -ne 0 ]; then - log_err "Processing failed for file: ${SPOOL_FILE}" - fi - - sleep "${SLEEP_INTERVAL}" -done - -- cgit v1.2.3