#! /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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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, '

', header, '

' if hasitems: print >> outfp, '' else: for item in items: print >> outfp, SPACE.join(item), '

' 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)