mirror of https://github.com/dirtbags/moth.git
59 lines
997 B
Bash
Executable File
59 lines
997 B
Bash
Executable File
#! /bin/sh
|
|
|
|
echo "Figuring out web user..."
|
|
for www in www-data http _; do
|
|
id $www && break
|
|
done
|
|
|
|
if [ $www = _ ]; then
|
|
echo "Unable to determine httpd user on this system. Dying."
|
|
exit 1
|
|
fi
|
|
|
|
initialize () {
|
|
for i in points.new points.tmp teams; do
|
|
mkdir -p state/$i
|
|
setfacl -m ${www}:rwx state/$i
|
|
done
|
|
|
|
>> state/points.log
|
|
hd < /dev/urandom | awk '{print $3 $4 $5 $6;}' | head -n 100 > state/teams/assigned.txt
|
|
}
|
|
|
|
once () {
|
|
if [ -f disabled ]; then
|
|
return
|
|
fi
|
|
|
|
if ! [ -d state ]; then
|
|
initialize $1
|
|
fi
|
|
|
|
# Collect new points
|
|
find state/points.new -type f | while read fn; do
|
|
cat $fn >> state/points.log
|
|
rm $fn
|
|
done
|
|
|
|
# Generate new puzzles.html
|
|
if $KOTH_BASE/puzzles.cgi > www/puzzles.new; then
|
|
mv www/puzzles.new www/puzzles.html
|
|
fi
|
|
|
|
# Generate new points.json
|
|
if $KOTH_BASE/points > www/points.new; then
|
|
mv www/points.new www/points.json
|
|
fi
|
|
}
|
|
|
|
cd $(basename $0)
|
|
KOTH_BASE=$(pwd)
|
|
|
|
while true; do
|
|
for dn in $KOTH_BASE/*; do
|
|
cd $dn
|
|
once
|
|
done
|
|
sleep 5
|
|
done
|