summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-08-22 10:41:25 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-08-22 10:41:25 +0800
commit1458b2b562bb0d2e0328bae45480bbbb635b71f2 (patch)
treedac47d9b18bac1f23cad3471c938afca9c899fa9
parent0682cf927984628bcae3e6bcbff7022ae5ff0aa6 (diff)
downloadlex-1458b2b562bb0d2e0328bae45480bbbb635b71f2.tar.gz
Install scripts, run file for spool processor.
-rw-r--r--Makefile4
-rw-r--r--install.cgi.sh (renamed from deploy.cgi.sh)0
-rw-r--r--install.lexd_spool.sh43
-rw-r--r--lexd-spool.rc16
-rwxr-xr-xlexd-spool.sh (renamed from sub.sh)12
-rw-r--r--uninstall.lexd_spool.sh46
6 files changed, 113 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 4fb8a1e..b37ecfe 100644
--- a/Makefile
+++ b/Makefile
@@ -96,7 +96,7 @@ install-user:
@if ! id -u $(SERVICE_USER) >/dev/null 2>&1; then \
echo "===> Creating service user..."; \
groupadd $(SERVICE_GROUP) 2>/dev/null || true; \
- useradd -g $(SERVICE_GROUP) -s /sbin/nologin -d /var/empty -c "lexd daemon user" $(SERVICE_USER); \
+ useradd -g $(SERVICE_GROUP) -s /sbin/nologin -m -c "lexd daemon user" $(SERVICE_USER); \
fi
install: $(TARGET) install-user
@@ -121,7 +121,7 @@ uninstall:
@echo "Note: The data directory and service accounts were preserved."
@echo "To remove all remaining data, run:"
@echo " # rm -rf $(VARDIR)"
- @echo " # userdel $(SERVICE_USER)"
+ @echo " # userdel -r $(SERVICE_USER)"
@echo " # groupdel $(SERVICE_GROUP)"
clean:
diff --git a/deploy.cgi.sh b/install.cgi.sh
index e6d5eeb..e6d5eeb 100644
--- a/deploy.cgi.sh
+++ b/install.cgi.sh
diff --git a/install.lexd_spool.sh b/install.lexd_spool.sh
new file mode 100644
index 0000000..e613c5d
--- /dev/null
+++ b/install.lexd_spool.sh
@@ -0,0 +1,43 @@
+#!/bin/ksh
+#
+# install.lexd_spool.sh - install lexd-spool binary and rc.d script.
+#
+# Usage: doas ./install.lexd_spool.sh
+
+set -e
+
+BIN_SRC="./lexd-spool.sh"
+BIN_DST="/usr/local/bin/lexd-spool"
+RC_SRC="./lexd-spool.rc"
+RC_DST="/etc/rc.d/lexd_spool"
+
+if [ "$(id -u)" -ne 0 ]; then
+ echo "error: this script must be run as root" >&2
+ exit 1
+fi
+
+if [ ! -f "$BIN_SRC" ]; then
+ echo "error: $BIN_SRC not found" >&2
+ exit 1
+fi
+
+if [ ! -f "$RC_SRC" ]; then
+ echo "error: $RC_SRC not found" >&2
+ exit 1
+fi
+
+if [ ! -e "$BIN_DST" ]; then
+ echo "installing $BIN_DST"
+ install -o root -g wheel -m 0755 "$BIN_SRC" "$BIN_DST"
+else
+ echo "$BIN_DST already exists, skipping"
+fi
+
+if [ ! -e "$RC_DST" ]; then
+ echo "installing $RC_DST"
+ install -o root -g wheel -m 0555 "$RC_SRC" "$RC_DST"
+else
+ echo "$RC_DST already exists, skipping"
+fi
+
+echo "done."
diff --git a/lexd-spool.rc b/lexd-spool.rc
new file mode 100644
index 0000000..7ae53cc
--- /dev/null
+++ b/lexd-spool.rc
@@ -0,0 +1,16 @@
+#!/bin/ksh
+
+daemon="/usr/local/bin/lexd-spool"
+daemon_user="_lexd"
+pexp="/bin/ksh ${daemon}"
+
+. /etc/rc.d/rc.subr
+
+rc_bg=YES
+rc_reload=NO
+
+rc_check() {
+ pgrep -q -u "${daemon_user}" -f "^/bin/ksh ${daemon}"
+}
+
+rc_cmd $1
diff --git a/sub.sh b/lexd-spool.sh
index 3d68184..825d13c 100755
--- a/sub.sh
+++ b/lexd-spool.sh
@@ -9,14 +9,14 @@ 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
+SLEEP_INTERVAL=30
log_err() {
- logger -t spool_proc -p daemon.err "$1"
+ logger -t lexd-spool -p daemon.err "$1"
}
log_info() {
- logger -t spool_proc -p daemon.info "$1"
+ logger -t lexd-spool -p daemon.info "$1"
}
while true; do
@@ -48,12 +48,12 @@ while true; do
exit 1
fi
- # Log truncated input string (up to 60 characters)
- trunc_prompt=$(print -r -- "${raw_prompt}" | cut -c1-60)
+ # Log truncated input string (up to 45 characters)
+ trunc_prompt=$(print -r -- "${raw_prompt}" | cut -c1-45)
log_info "Processing: \"${trunc_prompt}\""
# Pass prompt to socket
- response=$(print -r -- "${raw_prompt}" | nc -w 3 -U "${SOCKET_PATH}")
+ response=$(print -r -- "${raw_prompt}" | nc -w 300 -U "${SOCKET_PATH}")
if [ -z "${response}" ]; then
log_err "Empty socket response for: ${SPOOL_FILE}"
diff --git a/uninstall.lexd_spool.sh b/uninstall.lexd_spool.sh
new file mode 100644
index 0000000..39a863a
--- /dev/null
+++ b/uninstall.lexd_spool.sh
@@ -0,0 +1,46 @@
+#!/bin/ksh
+#
+# uninstall.lexd_spool.sh - remove lexd-spool binary and rc.d script.
+#
+# Usage: doas ./uninstall.lexd_spool.sh
+
+set -e
+
+BIN_DST="/usr/local/bin/lexd-spool"
+RC_DST="/etc/rc.d/lexd_spool"
+SERVICE="lexd_spool"
+
+if [ "$(id -u)" -ne 0 ]; then
+ echo "error: this script must be run as root" >&2
+ exit 1
+fi
+
+# stop the service if it's running
+if [ -e "$RC_DST" ] && rcctl check "$SERVICE" >/dev/null 2>&1; then
+ echo "stopping $SERVICE"
+ rcctl stop "$SERVICE"
+fi
+
+# disable the service if it's enabled
+if [ -e "$RC_DST" ] && rcctl ls on | grep -qx "$SERVICE"; then
+ echo "disabling $SERVICE"
+ rcctl disable "$SERVICE"
+fi
+
+# remove the rc.d script
+if [ -e "$RC_DST" ]; then
+ echo "removing $RC_DST"
+ rm -f "$RC_DST"
+else
+ echo "$RC_DST not present, skipping"
+fi
+
+# remove the binary
+if [ -e "$BIN_DST" ]; then
+ echo "removing $BIN_DST"
+ rm -f "$BIN_DST"
+else
+ echo "$BIN_DST not present, skipping"
+fi
+
+echo "done."