#! /bin/sh cd $(dirname $0)/.. # Do nothing if `disabled` is present if [ -f disabled ]; then exit fi # Reset to initial state if `reset` is present if [ -f reset ]; then rm -f state/teams/* state/points.new/* state/points.tmp/* : > state/points.log rm -f reset fi # Collect new points find state/points.new -type f | while read fn; do # Skip files opened by another process lsof $fn | grep -q $fn && continue # Skip partially written files [ $(wc -l < $fn) -gt 0 ] || continue # filter the file for unique awards sort -k 4 $fn | uniq -f 1 | sort -n >> state/points.log # Now kill the file rm -f $fn done # Generate new puzzles.html if www/cgi-bin/puzzles.cgi > www/puzzles.new; then mv www/puzzles.new www/puzzles.html fi # Generate new points.json if bin/points state/points.log > www/points.new; then mv www/points.new www/points.json fi