moth/packages/mcp/bin/addteam

59 lines
1.3 KiB
Plaintext
Raw Normal View History

#! /bin/sh -e
if [ $# -ne 1 ]; then
echo "Usage: $0 TEAM" 1>&2
exit 64
fi
2010-09-23 23:27:14 -06:00
escape () {
sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
}
# Don't overwrite files
set -C
2012-07-22 17:14:06 -06:00
STATE=$CTF_BASE/state
WWW=$CTF_BASE/www
2012-07-22 17:14:06 -06:00
mkdir -p $STATE/teams/names
mkdir -p $STATE/teams/colors
2012-07-22 17:14:06 -06:00
if ! [ -f $STATE/teams/salt ]; then
dd if=/dev/urandom count=1 2>/dev/null | md5sum | cut -b 1-8 > $STATE/teams/salt
fi
salt=$(cat $STATE/teams/salt)
2010-10-22 17:09:00 -06:00
# Assign a color. I spent weeks selecting a color pallette that
# wouldn't be hell on people with protanopia. Please don't change these
# colors.
2012-07-22 17:14:06 -06:00
nteams=$(ls $STATE/teams/names/ | wc -l)
2010-10-22 17:09:00 -06:00
case $(expr $nteams % 10) in
0) color=a6cee3;;
1) color=1f78b4;;
2) color=b2df8a;;
3) color=33a02c;;
4) color=fb9a99;;
5) color=e31a1c;;
6) color=fdbf6f;;
7) color=ff7f00;;
8) color=cab2d6;;
9) color=6a3d9a;;
2010-09-09 15:14:39 -06:00
*)
echo 'ERROR ERROR' 1>&2
echo 'DOES NOT COMPUTE' 1>&2
exit 69
;;
esac
# Compute hash of team name; they'll use this for everything in the
# contest instead of their team name, which makes stuff much easier on
# me since all team hashes are in the set /[0-9a-f]{8}/.
2012-05-30 18:04:24 -06:00
hash=$(printf "%s:%s" $salt "$1" | md5sum | cut -b 1-8)
2010-09-09 15:14:39 -06:00
2012-07-22 17:14:06 -06:00
echo "$1" > $STATE/teams/names/$hash
echo "$color" > $STATE/teams/colors/$hash
2010-09-09 15:14:39 -06:00
echo "Registered with hash: $hash"