summaryrefslogtreecommitdiffstats
path: root/lexd-spool.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lexd-spool.sh')
-rwxr-xr-xlexd-spool.sh18
1 files changed, 12 insertions, 6 deletions
diff --git a/lexd-spool.sh b/lexd-spool.sh
index eea19e0..c340502 100755
--- a/lexd-spool.sh
+++ b/lexd-spool.sh
@@ -6,9 +6,10 @@ USER_HOME="${HOME:-$(eval echo "~${USER}")}"
SSH_CONFIG="${USER_HOME}/.ssh/config"
SSH_HOST="lex-spool"
-SPOOL_DIR="/var/www/var/lex/spool/new"
+TMP_DIR="/var/www/var/lex/tmp"
DICT_DIR="/var/www/var/lex/dict"
-SOCKET_PATH="/var/run/lexd/sock"
+SPOOL_DIR="/var/www/var/lex/spool"
+SOCK_PATH="/var/run/lexd/sock"
SLEEP_INTERVAL=30
log_err() {
@@ -53,7 +54,7 @@ while true; do
log_info "Processing: \"${trunc_prompt}\""
# Pass prompt to socket and insert missing empty lines before uppercase headers
- response=$(print -r -- "${raw_prompt}" | nc -w 300 -U "${SOCKET_PATH}" | awk '
+ response=$(print -r -- "${raw_prompt}" | nc -w 300 -U "${SOCK_PATH}" | awk '
/^[A-Z ]+:[[:space:]]*$/ {
if (NR > 1 && last != "") {
print ""
@@ -92,11 +93,16 @@ while true; do
esac
target_file="${DICT_DIR}/${target_word}"
+ tmp_file="${TMP_DIR}/${target_word}"
+
+ remote_cmd="cat > '${tmp_file}' &&"
+ remote_cmd="${remote_cmd} mv -f '${tmp_file}'"
+ remote_cmd="${remote_cmd} '${target_file}' &&"
+ remote_cmd="${remote_cmd} rm -f"
+ remote_cmd="${remote_cmd} '${SPOOL_DIR}/${SPOOL_FILE}'"
- # 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}'"
+ | ssh -F "${SSH_CONFIG}" "${SSH_HOST}" "${remote_cmd}"
log_info "Finished processing: ${target_word}"
)