Move assigned.txt into state

This commit is contained in:
Neale Pickett 2017-10-12 00:55:34 +00:00
parent cbe671dbc2
commit 9b94c2b1f0
5 changed files with 23 additions and 13 deletions

View File

@ -2,14 +2,11 @@ FROM neale/eris
RUN apk --no-cache add lua5.2 RUN apk --no-cache add lua5.2
RUN apk --no-cache add lua5.3 RUN apk --no-cache add lua5.3
RUN ln -s lua5.2 /usr/bin/lua
# Install MOTH. This could be less obtuse. # Install MOTH. This could be less obtuse.
COPY www /moth/www COPY www /moth/www
COPY bin /moth/bin COPY bin /moth/bin
RUN mkdir -p /moth/state/teams /moth/state/points.new /moth/state/points.tmp
RUN chown www:www /moth/state/teams /moth/state/points.new /moth/state/points.tmp
RUN mkdir -p /moth/packages
RUN touch /moth/state/points.log
RUN ln -s ../state/puzzles.json /moth/www/puzzles.json RUN ln -s ../state/puzzles.json /moth/www/puzzles.json
RUN ln -s ../state/points.json /moth/www/points.json RUN ln -s ../state/points.json /moth/www/points.json

View File

@ -13,16 +13,19 @@ log () {
# Do nothing if `disabled` is present # Do nothing if `disabled` is present
if [ -f disabled ]; then if [ -f disabled ]; then
log "Instance disabled: doing nothing" log "Instance disabled; doing nothing"
exit exit
fi fi
# Reset to initial state if `reset` is present # Reset to initial state?
if [ -f reset ]; then if [ ! -f state/initialized ]; then
log "Resetting state" log "Resetting contest state"
rm -f state/teams/* state/points.new/* state/points.tmp/*
rm -rf state/teams state/points.new state/points.tmp
mkdir -p state/teams state/points.new state/points.tmp
chown www:www state/teams state/points.new state/points.tmp # Needs root. Use Docker.
: > state/points.log : > state/points.log
rm -f reset echo 'Remove this file to obliterate teams and points' > state/initialized
fi fi
# Create some team names if needed # Create some team names if needed
@ -31,6 +34,16 @@ if [ ! -f state/assigned.txt ]; then
hd </dev/urandom | awk '{print $3 $4 $5 $6;}' | head -n 100 > state/assigned.txt hd </dev/urandom | awk '{print $3 $4 $5 $6;}' | head -n 100 > state/assigned.txt
fi fi
# Install new categories
for pkg in puzzles/*; do
cat=$(basename $pkg .zip)
if [ ! -f packages/$cat/installed ] || [ $pkg -nt packages/$cat/installed ]; then
log "Installing $pkg"
bin/install-category $pkg
: >packages/$cat/installed
fi
done
# Helpful error message # Helpful error message
if [ $(ls packages | wc -l) -eq 0 ]; then if [ $(ls packages | wc -l) -eq 0 ]; then
log "error: No packages installed" log "error: No packages installed"

View File

@ -85,7 +85,7 @@ There are five entries in each instance directory, described in detail below:
`assigned.txt` `state/assigned.txt`
---------------- ----------------
This is just a list of tokens that have been assigned. This is just a list of tokens that have been assigned.

View File

@ -98,7 +98,7 @@ end
-- Traverse up to find assigned.txt -- Traverse up to find assigned.txt
for i = 0, 5 do for i = 0, 5 do
local f = io.open(koth.path("assigned.txt")) local f = io.open(koth.path("state/assigned.txt"))
if (f) then if (f) then
f:close() f:close()
break break

View File

@ -13,7 +13,7 @@ hash = hash:match("[0-9a-f]*")
if ((hash == "") or (team == "")) then if ((hash == "") or (team == "")) then
koth.page("Invalid Entry", "Oops! Are you sure you got that right?") koth.page("Invalid Entry", "Oops! Are you sure you got that right?")
elseif (not koth.anchored_search(koth.path("assigned.txt"), hash)) then elseif (not koth.anchored_search(koth.path("state/assigned.txt"), hash)) then
koth.page("Invalid Hash", "Oops! I don't have a record of that hash. Did you maybe use capital letters accidentally?") koth.page("Invalid Hash", "Oops! I don't have a record of that hash. Did you maybe use capital letters accidentally?")
end end