From f021ffd092d3de76f6ee41ebc30beb6958411fcd Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Thu, 13 Oct 2011 17:22:03 -0600 Subject: [PATCH] Verified claim.cgi, puzzled, scoreboard. Looking good. --- packages/mcp/bin/scoreboard | 2 +- packages/mcp/service/pointsd/pointsd | 28 ++++++---------------- packages/mcp/service/pointsd/run | 36 +++++++++++++++++++++++----- packages/mcp/service/puzzled/run | 10 +++----- 4 files changed, 41 insertions(+), 35 deletions(-) diff --git a/packages/mcp/bin/scoreboard b/packages/mcp/bin/scoreboard index 3522446..1f2dac3 100755 --- a/packages/mcp/bin/scoreboard +++ b/packages/mcp/bin/scoreboard @@ -1,4 +1,4 @@ -#! /usr/bin/awk -f +#! /bin/awk -f ## ## diff --git a/packages/mcp/service/pointsd/pointsd b/packages/mcp/service/pointsd/pointsd index d1d7e72..a6fc72f 100755 --- a/packages/mcp/service/pointsd/pointsd +++ b/packages/mcp/service/pointsd/pointsd @@ -1,28 +1,14 @@ #! /bin/sh -# First argument is seconds between running everything -period=${1:-60} - -NEWPOINTS=/var/lib/ctf/points.new +fn=$2/$3 POINTS=/var/lib/ctf/points.log SCOREBOARD=/var/www/scoreboard.html -if ! [ -f $SCOREBOARD ]; then - /opt/mcp/bin/scoreboard < $POINTS > $SCOREBOARD +cat $fn >> $POINTS || break +rm $fn + +# Render scoreboard +if [ $POINTS -nt $SCOREBOARD ]; then + /opt/mcp/bin/scoreboard < $POINTS > $SCOREBOARD.new && mv $SCOREBOARD.new $SCOREBOARD fi -while true; do - # Collect any new points - for fn in $NEWPOINTS/*; do - [ -f $fn ] || continue - cat $fn >> $POINTS || break - rm $fn - done - - # Render scoreboard - if [ $POINTS -nt $SCOREBOARD ]; then - /opt/mcp/bin/scoreboard < $POINTS > $SCOREBOARD.new && mv $SCOREBOARD.new $SCOREBOARD - fi - - sleep $period -done diff --git a/packages/mcp/service/pointsd/run b/packages/mcp/service/pointsd/run index a7d63bd..ea3d1ac 100755 --- a/packages/mcp/service/pointsd/run +++ b/packages/mcp/service/pointsd/run @@ -1,13 +1,37 @@ -#! /bin/sh +#! /bin/sh -e exec 2>&1 -install -o ctf -m 0755 -d /var/lib/ctf/points.new +install -d /var/lib/ctf + +# Create CTF user +touch /etc/group /etc/passwd +addgroup -g 56634 nogroup || true +adduser -D -S -h /var/lib/ctf -H ctf || true + +NEWDIR=/var/lib/ctf/points.new + +install -d /var/www +install -o ctf -m 0755 -d $NEWDIR install -o ctf -m 0755 -d /var/lib/ctf/points.tmp touch /var/lib/ctf/points.log -# Re-populate teams list for tanks -ls $base/teams/names | KEY="Too much cheese." /opt/mcp/bin/arc4 > $www/teams.txt.$$ -mv $www/teams.txt.$$ $www/teams.txt +# Generate preliminary scoreboard +if ! [ -f /var/www/scoreboard.html ]; then + /opt/mcp/bin/scoreboard < /dev/null > /var/www/scoreboard.html +fi -exec ./pointsd + +if [ -x /sbin/inotifyd ]; then + exec /sbin/inotifyd ./pointsd $NEWDIR:y +fi + +# Simulate inotifyd +cd $NEWDIR +while true; do + for fn in *; do + [ -f "$fn" ] || continue + ./pointsd m $NEWDIR $fn + done + sleep 7 +done diff --git a/packages/mcp/service/puzzled/run b/packages/mcp/service/puzzled/run index c154128..08f8d43 100755 --- a/packages/mcp/service/puzzled/run +++ b/packages/mcp/service/puzzled/run @@ -2,14 +2,10 @@ exec 2>&1 +install -d /var/www + +# Install truncates files DB=/var/lib/ctf/puzzles.db - -# Create CTF user -touch /etc/group /etc/passwd -addgroup -g 56634 nogroup || true -adduser -D -S -h /var/lib/ctf -H ctf || true - -mkdir -p /var/lib/ctf /var/www touch $DB chown ctf $DB