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;
>
>

Reply via email to