#! /usr/bin/lua5.3 io.write('{\n "points": [\n') local teams = {} local teamnames = {} local nteams = 0 local NR = 0 local statedir = arg[1] local f = io.open(statedir .. "/points.log") for line in f:lines() do ts, hash, cat, points = line:match("(%d+) (%g+) (%g+) (%d+)") teamno = teams[hash] if not teamno then teamno = nteams teams[hash] = teamno nteams = nteams + 1 tf = io.open(statedir .. "/teams/" .. hash) teamname = tf:read() tf:close() teamnames[hash] = teamname end if NR > 0 then -- JSON sucks, barfs if you have a comma with nothing after it io.write(",\n") end NR = NR + 1 io.write(' [' .. ts .. ', "' .. teamno .. '", "' .. cat .. '", ' .. points .. ']') end io.write('\n],\n "teams": {\n') NR = 0 for hash,teamname in pairs(teamnames) do if NR > 0 then io.write(",\n") end NR = NR + 1 teamno = teams[hash] io.write(' "' .. teamno .. '": "' .. teamname .. '"') end io.write('\n }\n}\n')