96 lines
1.3 KiB
Bash
Executable File
96 lines
1.3 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
DESTDIR=${1:-/home/neale/public_html}
|
|
GOPATH=$HOME/go export GOPATH
|
|
|
|
cd $(dirname $0)
|
|
|
|
older () {
|
|
tgt=$1
|
|
[ -f "$tgt" ] || return 0
|
|
|
|
for src in "$@"; do
|
|
[ "$src" -nt "$tgt" ] && return 0
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
|
|
html () {
|
|
target=$DESTDIR/${1%mdwn}html
|
|
if older $target $1 tmpl/*; then
|
|
echo "HTML $1"
|
|
mkdir -p $(dirname $target)
|
|
./tmpl/mdwntohtml < $1 > $target
|
|
fi
|
|
}
|
|
|
|
copy () {
|
|
target=$DESTDIR/$1
|
|
if older $target $1; then
|
|
echo "COPY $1"
|
|
mkdir -p $(dirname $target)
|
|
cp $1 $target
|
|
fi
|
|
}
|
|
|
|
cc () {
|
|
target=$DESTDIR/${1%.c}
|
|
if older $target $1; then
|
|
echo "CC $1"
|
|
gcc -o $target $1
|
|
fi
|
|
}
|
|
|
|
gc () {
|
|
target=$DESTDIR/${1%.go}
|
|
if older $target $1; then
|
|
echo "GO $1"
|
|
go build -o $target $1
|
|
fi
|
|
}
|
|
|
|
setuid () {
|
|
target=$DESTDIR/${1%.*}
|
|
if ! [ -u $target ]; then
|
|
echo "SETUID $target"
|
|
chmod u+s $target
|
|
fi
|
|
}
|
|
|
|
install () {
|
|
fd=$(dirname $fn)
|
|
echo "SUBINSTALL $fd"
|
|
(cd $fd && ./install $DESTDIR/$fd)
|
|
}
|
|
|
|
|
|
git ls-files | while read fn; do
|
|
case "$fn" in
|
|
.*|*/.*|*~|install)
|
|
true # Skip
|
|
;;
|
|
*/install)
|
|
install $fn
|
|
;;
|
|
trigger.cgi.go)
|
|
gc $fn
|
|
setuid $fn
|
|
;;
|
|
*.mdwn)
|
|
html $fn
|
|
;;
|
|
*.cgi.c)
|
|
cc $fn
|
|
;;
|
|
*.cgi.go)
|
|
gc $fn
|
|
;;
|
|
*)
|
|
copy $fn
|
|
;;
|
|
esac
|
|
done
|
|
|