summaryrefslogtreecommitdiffstats
path: root/consumer.sh
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-08-02 21:16:34 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-08-02 21:16:34 +0800
commite6bcc2276b8c06190229159ff990b1a0dd2b267d (patch)
tree53d9419a00c96b67356b106dfc3cf0a306fd4eb2 /consumer.sh
parent1035560298d8e5ff0cd0ccde433aed624c546604 (diff)
downloadlex-e6bcc2276b8c06190229159ff990b1a0dd2b267d.tar.gz
Rename to pub/sub.
Diffstat (limited to 'consumer.sh')
-rwxr-xr-xconsumer.sh70
1 files changed, 0 insertions, 70 deletions
diff --git a/consumer.sh b/consumer.sh
deleted file mode 100755
index 1fa4894..0000000
--- a/consumer.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-
-REMOTE_HOST="${FIFO_REMOTE_HOST:-lex-queue}"
-REMOTE_FIFO="${FIFO_REMOTE_FIFO:-/tmp/job_queue.txt}"
-TARGET_DIR="${FIFO_TARGET_DIR:-/home/sadeep/lex}"
-
-# Ensure the queue file exists
-ssh -n "$REMOTE_HOST" "touch \"$REMOTE_FIFO\"" || {
- echo "[$(date '+%H:%M:%S')] ERROR: Failed to reach remote host or init queue" >&2
- exit 1
-}
-
-echo "[$(date '+%H:%M:%S')] Listening to remote queue '$REMOTE_FIFO' on $REMOTE_HOST..."
-
-while true; do
- msg=$(ssh -n "$REMOTE_HOST" "
- if [ -s \"$REMOTE_FIFO\" ]; then
- head -n 1 \"$REMOTE_FIFO\"
- ed -s \"$REMOTE_FIFO\" <<'EOF' >/dev/null 2>&1
-1d
-w
-q
-EOF
- fi
- ")
-
- if [ -z "$msg" ]; then
- sleep 1
- continue
- fi
-
- # Log formatted line capped at 72 chars
- log_line="[$(date '+%H:%M:%S')] Processing message: ${msg}"
- if [ ${#log_line} -gt 72 ]; then
- printf "[%s] Processing message: %.38s...\n" "$(date '+%H:%M:%S')" "$msg"
- else
- echo "$log_line"
- fi
-
- # Execute ./lex locally into RAM
- output=$(./lex "$msg" 2>/dev/null)
-
- if [ -z "$output" ]; then
- echo "[$(date '+%H:%M:%S')] ERROR: ./lex returned empty response"
- continue
- fi
-
- # Extract first word in-memory and convert to lowercase
- raw_word=$(printf '%s' "$output" | awk 'NR==1{print $1; exit}')
- first_word=$(printf '%s' "$raw_word" | tr '[:upper:]' '[:lower:]')
-
- if [ -z "$first_word" ]; then
- echo "[$(date '+%H:%M:%S')] ERROR: Invalid response (no first word)."
- continue
- fi
-
- target_file="${TARGET_DIR}/${first_word}.txt"
- temp_target="${TARGET_DIR}/${first_word}.tmp"
-
- # Stream RAM payload to remote temp file and atomically rename
- if printf '%s\n' "$output" \
- | fold -s -w 72 \
- | ssh "$REMOTE_HOST" "cat > \"$temp_target\" && mv -f \"$temp_target\" \"$target_file\""; then
- echo "[$(date '+%H:%M:%S')] OK: Saved to $target_file"
- else
- echo "[$(date '+%H:%M:%S')] ERROR: Failed processing '$first_word'"
- fi
-
-done
-