diff options
Diffstat (limited to 'admin/bin/mm2do')
-rwxr-xr-x | admin/bin/mm2do | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/admin/bin/mm2do b/admin/bin/mm2do new file mode 100755 index 00000000..661a25f4 --- /dev/null +++ b/admin/bin/mm2do @@ -0,0 +1,76 @@ +#! /usr/bin/env python +# +# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +"""Generate the todo.ht file from the plain-text TODO file.""" + +import sys + +infp = open(sys.argv[1]) +outfp = open(sys.argv[2], 'w') + +SPACE = ' ' + +print >> outfp, 'Title: The Mailman Wishlist\n' + +def dumpsection(header, items, hasitems): + # We're looking at a header + if header: + # output the previous section + print >> outfp, '<h3>', header, '</h3>' + if hasitems: + print >> outfp, '<ul>' + for item in items: + if item: + print >> outfp, ' <li>', SPACE.join(item) + print >> outfp, '</ul>' + else: + for item in items: + print >> outfp, SPACE.join(item), '<p>' + + + +header = '' +items = [['']] +hasitems = False +inpreamble = True +while True: + line = infp.readline() + if not line or line[0] == '\f': + break + # Skip the legalese preamble + if inpreamble: + if line.strip(): + continue + else: + inpreamble = False + if not line[0].isspace(): + dumpsection(header, items, hasitems) + header = line + items = [[]] + continue + # find out what the first non-ws character on the line is + line = line.lstrip() + if line and line[0] == '-': + items.append([line[2:-1]]) + hasitems = True + else: + if not line: + continue + items[-1].append(line) + +dumpsection(header, items, hasitems) |