Source

nsstringgen / nsstringfromenumgen

#!/usr/bin/env python

import argparse
import sys

from nsstringgen.NSStringFromEnumGenerator import funs_from_file, NSGException

aparse = argparse.ArgumentParser(description = "Create NSStringFromEnumeration Objective-C functions based on Objective-C source files")
aparse.add_argument("files", type=str, nargs="*", help="files to parse, can be - to indicate standard input")
aparse.add_argument("--text", type=str, default=None, nargs="?", help="code to parse as a parameter")
aparse.add_argument("--include", action="append", help="include file")
aparse.add_argument("--mask", action="store_true", help="assume enums are used as bitmasks")
args = aparse.parse_args()

if len(args.files) == 0 and args.text is None:
	aparse.error("Need to specify either one or more files (or -) or --text")

try:
    for fname in args.files:
        contents = None
        if fname == '-':
            contents = sys.stdin.read()
        for fun in funs_from_file(fname, args.include, args.mask, contents):
            sys.stdout.write(fun)
            sys.stdout.write("\n")
    if args.text is not None:
    	for fun in funs_from_file("-", args.include, args.mask, args.text):
    		sys.stdout.write(fun)
    		sys.stdout.write("\n")
except NSGException, e:
    sys.stderr.write(str(e) + "\n")
    sys.exit(1)