[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The Ugliest American Bash Script
From: |
cLIeNUX user |
Subject: |
Re: The Ugliest American Bash Script |
Date: |
Tue, 11 May 2004 07:43:20 -0000 |
echo "
This kills Diebold. There is at least one previous such project out there
as well.
"
humbubba@smart.net
>doballot () {
>clear
> # Squeal if prez is abstain
>if test "$prez" = "abstain" ; then
>echo "
>
>You have selected the q option to finalize your ballot editing session,
>but you haven't chosen a candidate for President of the United States. You
>may want to ask for assistance before hitting another key, unless you
>actually intend to actively abstain from voting for President, which this
>system asks you about because you didn't have to come to the poll to do
>that.
>
>"
>waitenter
>
>fi
>
> # do an Are You Sure?
>echo "
>
>This is it. The next time you hit ENTER with no other keys your final
>official ballot will be printed out and your votes will be added to the
>electronic unofficial tally. If you aren't really ready to finalize
>editing your ballot hit n before hitting ENTER .
>
>
>
>
>"
>read notsure
>if test "$notsure" ; then
> notsure=
>else # print and tally
> notsure=
> hasnotvoted=
> echo -en "\007" # beep the PC beeper. Korny.
> Tally
> waitenter # DELETE ME ON ELECTION DAY
> printballot # > /dev/lp0 UNCOMMENT ME ON ELECTION DAY
> waitenter # DELETE ME ON ELECTION DAY
> clear
> echo "
>
>Thank you for participating in the democratic process of the United States
>of America and the Second Congressional District of East Jesus Wyoming.
>When your ballot is printed take it to the ballot box and insert the
>ballot in the box.
>
>"
> sleep 5
>fi
>}
>
>
>perVoter () { # per-voter top loop
>while test "$hasnotvoted" ;do
> voterUID=$RANDOM$RANDOM
> clear
> echo "
>
>You can change your vote for any item until you select the q item, which
>will ask for confirmation, and then your official ballot printed out and
>the electronic copy of your vote will be finalized. Your actual vote
>becomes official when you place the printed ballot in the ballot box.
>
>p President
>v Vice President
>s Senator
>c Congressman
>
>r Review your votes so far
>o Start over; reset all your votes to abstain
>q print your ballot, backup tally your votes and quit
>
>
>Hit an option letter from the left column and hit ENTER .
>
>
>"
> read maini
> case $maini in
> p|P) president ;;
> v|V) local ;;
> s|S) senator ;;
> c|C) congressman ;;
> r|R) checkem ;;
> o|O) allabstain ;;
> q|Q) doballot ;;
> *) halp ;;
> esac
>done
>}
>
>
>writein () {
># needs to be a loop
>clear
>echo"
>Type in your write-in selection and hit ENTER
>
>
>
>
>"
>read $wrotein
>clear
>echo "You have written in" $wrotein
>}
>
>
>checkem () {
>clear
>echo "
>Your current votes...
>
>United States of America
>
>"
>printballot
>waitenter
>}
>
>
>
>newvcode () { # Simple gizmo to problematicize repeat voting
> # Note to poll site proctors...
> # change fluib and trUb to something unique to your
> # polling place and change them per election.
>
>if test "$vcode" = "fluib" ; then
> vcode=trUb
>else
> vcode=fluib
>fi
>}
>
>
>allabstain () {
>prez=abstain
>veep=abstain
>congressman=abstain
>senator=abstain
> # add local offices here if any
>}
>
>
>waitenter () {
>echo "
>
>
> Hit Enter to continue
>
>
> "
>read junkvariable
>}
>
>
>president () {
>clear
>echo "
>President of the United States of America
>
>b George Walker Bush Republican Party
>k John Forbes Kerry Democratic Party
>
>w write in a vote
>a abstain, no vote for this office
>
>Hit an option letter from the left column and hit ENTER .
>
>
>"
>read fedi
>case $fedi in
> b|B) prez="George Walker Bush" ;;
> k|K) prez="John Forbes Kerry" ;;
> a|A) prez=abstain ;;
> w|W) writein
> prez=$wrotein ;;
> *) halp ;;
>esac
>}
>
>
>Tally () { # spaces are tabs
>echo $voterUID" "$prez ## >> tally UNCOMMENT ME ON ELECTION DAY
>echo $voterUID" "$veep ## >> tally UNCOMMENT ME ON ELECTION DAY
>echo $voterUID" "$senator ## >> tally UNCOMMENT ME ON ELECTION DAY
>echo $voterUID" "$congressman ## >> tally UNCOMMENT ME ON ELECTION DAY
>}
>
>
>printballot () {
>echo "
>$voterUID
>
>
>
>
>President $prez
>Vice President $veep
>Senator $senator
>Congressman $congressman
>
>
>
>"
>}
>
>
>halp () { # keep factored out in case candidates grow into a tree
>clear
>echo "
>Your input doesn't match any of the menu option index letters. That's a
>problem for this system. Please use the letters shown to select menu
>items. I will send you back to the main menu when you hit the ENTER key,
>but if that doesn't make sense you may wish to seek assistance from a poll
>monitoring person.
>
>Hit the ENTER key to return to the main menu.
>
>
>"
>}
>
>
>vcodehint () {
>if test $vcode = trUb ; then
> echo "
>
> TTTTTTTTTTT
> TTTTTTTTTTT
> TT
> TT
> TT
> TT
> TT
> TT
> "
>else
> echo "
>
> FFFFFFFFFF
> FFFFFFFFFF
> FF
> FF
> FFFFfF
> FFFFFf
> FF
> FF
> FF
> FF
>
> "
>fi
>}
>
>
>Main () { # top endless loop of voter interface
>
># ctrl&C and so on should be disabled here in the real deal
>
>export prez veep senator congressman
>
>vcode=fluib
>
>while true ;do # i.e. always
> voted= # clear $voted toggle
> allabstain
> clear
> vcodehint
> echo "
> Please type in your voter key and hit ENTER
>
>
>
>
>
>
> "
> read vcodeTry
> if test "$vcodeTry" = "$vcode" ; then
> newvcode
> hasnotvoted=true
> perVoter
> else
> echo -en "\007" # beep the PC beeper. Korny.
> fi
>done
>} # end of Main
>
>
>
>
>echo "
> divehumble, opposite of Liebold
>
>Unix shell script to serve as electronic polling aid for democratic
>political elections.
>
>initial sketch Rick Hohensee April 2004
>
>Works on cLIeNUX (Linux, GNU Bash shell) on any recent-model IBM-style PC.
>
>This file is a valid unix shell script, i.e. a computer program.
>
>Korny means this is probably a dependancy on a Korn-style shell or GNU
> Bash.
>
>Localization of this script may involve changing some text, adding some
>candidates, removing the Senator option, and other simple modifications.
>Avoid changing the logic of Main and perVoter if at all possible.
>
>
>" > /dev/null
>