summaryrefslogtreecommitdiff
path: root/journal.cgi
blob: c34c2e7c76e29b778788ee5096a22e3329c2d65d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#! /bin/sh
DIR=`dirname "$0"`
if test -e /home/mulk; then
    # MST-plus.
    LISPINIT_DIR="$DIR"
else
    # NearlyFreeSpeech.NET.
    LISPINIT_DIR="$NFSN_SITE_ROOT/protected/journal"
fi

mtime_of() {
    stat -n -f "%m" -t "%s" "$1" || echo -n 0
}

FASL_FILE="$LISPINIT_DIR/journal-full.fas"

lisp_mtime=0
for x in $DIR/*.lisp; do
    mtime=`mtime_of "$x"`
    if [ $mtime -gt $lisp_mtime ]; then
        lisp_mtime=$mtime
    fi
done

if ! [ -f "$FASL_FILE" -a \( `mtime_of "$FASL_FILE"` -gt $lisp_mtime \) ]; then
    env LC_ALL=de_DE.UTF-8 clisp -M "$LISPINIT_DIR/lispinit.mem.gz" "$DIR/compile.lisp" &&\
    find "$DIR" -name "*.fas" -print0 | xargs -0 cat > "$FASL_FILE"
fi

exec env LC_ALL=de_DE.UTF-8 clisp -q -q -M "$LISPINIT_DIR/lispinit.mem.gz" -x "(progn (load \"$FASL_FILE\") (cl-user::script-main))"