paul@84 | 1 | #!/usr/bin/env python |
paul@84 | 2 | |
paul@88 | 3 | from moinformat import get_serialiser, parse, serialise |
paul@84 | 4 | from os.path import split |
paul@84 | 5 | import sys |
paul@84 | 6 | |
paul@84 | 7 | def test_option(args, name): |
paul@84 | 8 | if name in args: |
paul@84 | 9 | args.remove(name) |
paul@84 | 10 | return True |
paul@84 | 11 | else: |
paul@84 | 12 | return False |
paul@84 | 13 | |
paul@84 | 14 | def main(): |
paul@84 | 15 | dirname, progname = split(sys.argv[0]) |
paul@84 | 16 | args = sys.argv[1:] |
paul@84 | 17 | |
paul@84 | 18 | l = filenames = [] |
paul@84 | 19 | formats = [] |
paul@84 | 20 | tree = False |
paul@84 | 21 | |
paul@84 | 22 | for arg in args: |
paul@84 | 23 | |
paul@84 | 24 | # Detect tree output. |
paul@84 | 25 | |
paul@84 | 26 | if arg == "--tree": |
paul@84 | 27 | tree = True |
paul@84 | 28 | |
paul@84 | 29 | # Switch to collecting formats |
paul@84 | 30 | |
paul@84 | 31 | elif arg == "--format": |
paul@84 | 32 | l = formats |
paul@84 | 33 | continue |
paul@84 | 34 | |
paul@84 | 35 | # Collect options and arguments. |
paul@84 | 36 | |
paul@84 | 37 | else: |
paul@84 | 38 | l.append(arg) |
paul@84 | 39 | |
paul@84 | 40 | # Collect filenames normally. |
paul@84 | 41 | |
paul@84 | 42 | l = filenames |
paul@84 | 43 | |
paul@84 | 44 | filename = filenames[0] |
paul@84 | 45 | |
paul@84 | 46 | f = open(filename) |
paul@84 | 47 | try: |
paul@88 | 48 | d = parse(f.read()) |
paul@84 | 49 | if tree: |
paul@84 | 50 | print d.prettyprint() |
paul@84 | 51 | else: |
paul@84 | 52 | format = formats and formats[0] or "html" |
paul@85 | 53 | print serialise(d, get_serialiser(format)) |
paul@84 | 54 | finally: |
paul@84 | 55 | f.close() |
paul@84 | 56 | |
paul@84 | 57 | if __name__ == "__main__": |
paul@84 | 58 | main() |
paul@84 | 59 | |
paul@84 | 60 | # vim: tabstop=4 expandtab shiftwidth=4 |