diff options
| -rw-r--r-- | README.txt | 3 | ||||
| -rw-r--r-- | install.cgi.sh | 14 | ||||
| -rwxr-xr-x[-rw-r--r--] | install.lexd_spool.sh | 0 | ||||
| -rwxr-xr-x | lex.cgi | 7 | ||||
| -rwxr-xr-x | lexd-spool.sh | 18 | ||||
| -rwxr-xr-x[-rw-r--r--] | uninstall.lexd_spool.sh | 0 |
6 files changed, 24 insertions, 18 deletions
@@ -6,3 +6,6 @@ USAGE 4. Start service: rcctl start lexd 5. Connect, type prompt, hit enter: nc -U /var/run/lexd/sock +INSTALL + + 1. Mailer: install -c -o root -g bin -m 755 mailer.pl /usr/local/bin/lex-mailer diff --git a/install.cgi.sh b/install.cgi.sh index e6d5eeb..8f0963c 100644 --- a/install.cgi.sh +++ b/install.cgi.sh @@ -41,17 +41,13 @@ mkdir -p "/var/www/var/lex/locks" chown www:www "/var/www/var/lex/locks" chmod 750 "/var/www/var/lex/locks" +mkdir -p "/var/www/var/lex/tmp" +chown www:tool "/var/www/var/lex/tmp" +chmod 770 "/var/www/var/lex/tmp" + mkdir -p "/var/www/var/lex/spool" chown www:tool "/var/www/var/lex/spool" -chmod 710 "/var/www/var/lex/spool" - -mkdir -p "/var/www/var/lex/spool/tmp" -chown www:tool "/var/www/var/lex/spool/tmp" -chmod 750 "/var/www/var/lex/spool/tmp" - -mkdir -p "/var/www/var/lex/spool/new" -chown www:tool "/var/www/var/lex/spool/new" -chmod 2770 "/var/www/var/lex/spool/new" +chmod 2770 "/var/www/var/lex/spool" mkdir -p "/var/www/var/lex/dict" chown lex:tool "/var/www/var/lex/dict" diff --git a/install.lexd_spool.sh b/install.lexd_spool.sh index e613c5d..e613c5d 100644..100755 --- a/install.lexd_spool.sh +++ b/install.lexd_spool.sh @@ -39,7 +39,8 @@ BEGIN { my $log_dir = "/var/log"; my $base_dir = "/var/lex"; -my $spool_dir = "/var/lex/spool"; +my $tmp_dir = "$base_dir/tmp"; +my $spool_dir = "$base_dir/spool"; my $keyring_file = "$base_dir/pubring.gpg"; unveil("/dev/null", "rw") or die "unveil /dev/null failed: $!"; @@ -267,8 +268,8 @@ unless ($plain_text_len <= 200) { my ($sec, $usec) = gettimeofday(); my $spool_filename = sprintf("spool_%d%06d_%d.job", $sec, $usec, $$); -my $tmp_spool_file = "$spool_dir/tmp/$spool_filename.tmp"; -my $spool_file = "$spool_dir/new/$spool_filename"; +my $tmp_spool_file = "$tmp_dir/$spool_filename.tmp"; +my $spool_file = "$spool_dir/$spool_filename"; # Set umask so group gets read/write (0666 & ~0007 = 0660) my $old_umask = umask(007); 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}" ) diff --git a/uninstall.lexd_spool.sh b/uninstall.lexd_spool.sh index 39a863a..39a863a 100644..100755 --- a/uninstall.lexd_spool.sh +++ b/uninstall.lexd_spool.sh |
