#!/usr/bin/env python
"""Nicely indent XML read from STDIN or a file."""
from os.path import basename
from sys import argv, exit, stdin
from xml.dom.minidom import parseString
def read_data(fn):
"""Read data from STDIN or a file."""
if fn == '-':
f = stdin
else:
f = open(fn, 'rb')
return f.read()
def indent_xml(xml, indent=' '*4):
"""Indent and return XML."""
return parseString(xml).toprettyxml(indent)
if __name__ == '__main__':
if len(argv) != 2:
print 'Usage: %s <filename | - (stdin)>' \
% basename(argv[0])
exit(2)
print indent_xml(read_data(argv[1]))