#!/bin/sh -e echo "== Lua User's Lottery ==" date --utc OUTDIR=. NOISE_URL=http://theregister.co.uk/ LOTTERY_URL=http://lua-users.sourceforge.net/wiki/LuaUsersLottery NOISE_FILE=$OUTDIR/noise.txt wget -q -O $NOISE_FILE $NOISE_URL CKSUM_OUT=(`cksum < $NOISE_FILE`) CHECKSUM=${CKSUM_OUT[0]} INFO_FILE=$OUTDIR/lottery_info.txt lynx -dump -nolist -width=160 $LOTTERY_URL > $INFO_FILE lua <>>.-\n(.*\n).-<<<.*', '%1') participant_list = { } -- NOTE: assuming list entries are not multiple lines gsub(participants, '%s*%*%s*(.-)\n', function (entry) tinsert(participant_list, entry) end) sort(participant_list) print('participants:') n = getn(participant_list) for i = 1, n do print(' '..i, participant_list[i]) end print('and the winner is...') randomseed($CHECKSUM/2) -- ISSUE: random depends on the C library implementation, and so the -- lottery result cannot be independently verified winner = random(n) print(' '..winner, participant_list[winner]) TEXT1