view prettyprint.py @ 205:adf7f617bda9

make the name of the design document configurable via command line switch. When cloning the feedworm db, the design document is no longer the same as the database name
author dirk
date Sat, 02 Jun 2012 04:24:49 +0200
parents 2da2b691345d
children bb3c851b18b1
line wrap: on
line source


import sys

newlineAfter = [ '{', '[', ',' ]
newlineBefore = [ '}', ']' ]

def prettyPrint(file):
    indent = 0
    doIndent = False
    printCommand = None
    for line in file:
        for char in line:
            if char in newlineAfter:
                if char is not ',':
                    indent = indent + 1
                doIndent = True
                printCommand = p_nl
            elif char in newlineBefore:
                indent = indent - 1
                doIndent = True
                printCommand = nl_p
            else:
                printCommand = p
                doIndent = False

            printCommand(char)
            if doIndent:
                for x in range(indent):                         #@UnusedVariable
                    sys.stdout.write("    ")
                    doIndent = False

def p(char):
    sys.stdout.write(char)

def p_nl(char):
    sys.stdout.write(char)
    sys.stdout.write("\n")
    
def nl_p(char):
    sys.stdout.write("\n")
    sys.stdout.write(char)    

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("usage: %s <file>" % (sys.argv[0]))
        sys.exit(1)
    
    filename = sys.argv[1]
    with open(filename) as file:
        prettyPrint(file)