brmelect/README.md

1.6 KiB

Initialization

Decide on label of the election. We will refer to that as $label; this label is to be passed as a parameter to gen-ballot.pl and updated near the top of web-ballot.pl. The generated votes.txt file contains this in its filename.

Copy names-sample.txt to names.txt or create your own names.txt. Clobber your ~/votes $label.txt file.

Generating Ballots

./gen-ballot.pl 15 "testovaci komise" <names.txt >tokens.txt

Web Ballot CGI Script

Put names.txt and tokens.txt to the same directory as web-ballot.pl and make that directory available for CGI script execution. If this directory is accessible over web, don't forget to remove read permissions for all but the owner.

After updating the "$label" setting in web-ballot.pl, it should just work; you may need to adjust the votes.txt path currently hardcoded in web-ballot.pl, where the cast votes are recorded.

Counting Votes

This script will show just the final vote for each token:

perl -nle 'chomp; @b = split/,/; $a{$b[0]} = [@b]; END { for (values %a) { print join(",", @$_); } }' ~/'votes testovaci komise'.txt >finalvotes.txt

Append votes from collected paper ballots, one line per ballot, with numbers for each candidate as entered (use 0 in place of numbers not entered for a particular candidate).

Then, build input for hlas.pl - a text file, that has:

NUMBER_OF_ELECTED_CANDIDATES  (1 for predseda, 3 or 5 or 7 for rada, ...)
<names.txt>

<cat finalvotes.txt | cut -d, -f 2- | tr , ' '>

0

(See hlas-example.txt for an example.)

Then, run hlas.pl < textfile and there you go!