Per Alan's wanting to do some Python work... anybody have any problem with [the project] converting the Perl scripts over to Python?
While I can manage some Perl with perlman in front of me, I think we're all more comfortable with Python. We have 1492 lines of Perl. Looking at the long (make_issue.pl), it is more text than code. We should be able to port the scripts over one at a time. (and note that wrapsuid.c is agnostic about the target program) I'm also thinking we could write a ./configure script in Python. Normally, it is shell, but if Steve requires Python, then I see no problem with configure being in Python. (specifically, I'm looking at grp.getgrnam() (and similar for user id) to map a human name to an ID, rather than hard-coding in Makefile) Cheers, -g On Wed, May 29, 2013 at 3:35 PM, <[email protected]> wrote: > Author: jim > Date: Wed May 29 19:35:26 2013 > New Revision: 1487609 > > URL: http://svn.apache.org/r1487609 > Log: > Lump all Steve subs into steve.pm > > Removed: > steve/trunk/cmdline/ballots.pm > steve/trunk/cmdline/randomize.pm > Modified: > steve/trunk/cmdline/make_issue.pl > steve/trunk/cmdline/reminder.pl > steve/trunk/cmdline/steve.pm > > Modified: steve/trunk/cmdline/make_issue.pl > URL: > http://svn.apache.org/viewvc/steve/trunk/cmdline/make_issue.pl?rev=1487609&r1=1487608&r2=1487609&view=diff > ============================================================================== > --- steve/trunk/cmdline/make_issue.pl (original) > +++ steve/trunk/cmdline/make_issue.pl Wed May 29 19:35:26 2013 > @@ -38,8 +38,6 @@ BEGIN { > unshift @INC, "/home/voter/bin"; > } > require "getopts.pl"; > -use randomize; > -use ballots; > use steve; > > umask(0077); > > Modified: steve/trunk/cmdline/reminder.pl > URL: > http://svn.apache.org/viewvc/steve/trunk/cmdline/reminder.pl?rev=1487609&r1=1487608&r2=1487609&view=diff > ============================================================================== > --- steve/trunk/cmdline/reminder.pl (original) > +++ steve/trunk/cmdline/reminder.pl Wed May 29 19:35:26 2013 > @@ -26,7 +26,6 @@ > BEGIN { > unshift @INC, "/home/voter/bin"; > } > -use randomize; > use steve; > > > > Modified: steve/trunk/cmdline/steve.pm > URL: > http://svn.apache.org/viewvc/steve/trunk/cmdline/steve.pm?rev=1487609&r1=1487608&r2=1487609&view=diff > ============================================================================== > --- steve/trunk/cmdline/steve.pm (original) > +++ steve/trunk/cmdline/steve.pm Wed May 29 19:35:26 2013 > @@ -19,6 +19,8 @@ > # shared functions for Apache Steve. > # > > +##use strict; > + > $ECHO = '/bin/echo'; > $CAT = '/bin/cat'; > $MD5 = '/sbin/md5'; > @@ -204,4 +206,42 @@ sub not_valid { > return 0; > } > > +# randomize the order in which candidates are listed > +# > +# candidates are identified with a single alphanumeric character surrounded > +# by square brackets as the first non-blank on a line. > +# > +# candidates are to be listed consecutively, one per line. If this is > +# found not to be the case, NO reordering is performed. > +sub randomize { > + my (@prolog, @choices, @epilog); > + > + push @prolog, shift while @_ && not $_[0] =~ /^\s*\[[a-z0-9]\]\s/; > + unshift @epilog, pop while @_ && not $_[-1] =~ /^\s*\[[a-z0-9]\]\s/; > + return @prolog, @_, @epilog if grep !/^\s*\[\S\]\s/, @_; > + push @choices, splice(@_, rand @_, 1) while @_; > + return @prolog, @choices, @epilog; > +} > + > +# return the ballot identifiers for each candidate in an issue. > +# > +# candidates are identified with a single alphanumeric character surrounded > +# by square brackets as the first non-blank on a line. > +# > +# candidates are to be listed consecutively, one per line. > +# > +sub ballots { > + my (@ballots); > + > + shift while @_ && not $_[0] =~ /^\s*\[[a-z0-9]\]\s/; > + for (@_) { > + if (/^\s*\[([a-z0-9])\]\s/) { > + push @ballots, "$1\n"; > + } else { > + last; > + } > + } > + return @ballots; > +} > + > 1; > >
