diff --git a/ttDump.py b/ttDump.py index 1d504791a..f4186a713 100644 --- a/ttDump.py +++ b/ttDump.py @@ -1,11 +1,8 @@ #! /usr/bin/env python """\ -usage: %s [-hvis] [-t ] [-x
] TrueType-file [TTX-output-file] - Dump a TrueType font as a TTX file (an XML-based text format). If the - TTX-output-file argument is omitted, the out put file name will be - constructed from the input file name, like so: *.ttf becomes *.ttx. - Either way, existing files will be overwritten without warning! +usage: %s [-hvisf] [-t
] [-x
] [-d ] TrueType-file(s) + Dump TrueType fonts as TTX files (an XML-based text format). Options: -h help: print this message @@ -20,9 +17,10 @@ usage: %s [-hvis] [-t
] [-x
] TrueType-file [TTX-output-file] directory will be constructed from the input filename (by dropping the extension) or can be specified by the optional TTX-output-file argument. + -f force overwriting existing files. -t
specify a table to dump. Multiple -t options are allowed. When no -t option is specified, all tables - will be dumped + will be dumped. -x
specify a table to exclude from the dump. Multiple -x options are allowed. -t and -x are mutually exclusive. """ @@ -30,11 +28,12 @@ usage: %s [-hvis] [-t
] [-x
] TrueType-file [TTX-output-file] import sys, os, getopt from fontTools import ttLib -options, args = getopt.getopt(sys.argv[1:], "hvist:x:") +options, args = getopt.getopt(sys.argv[1:], "hvisft:x:") verbose = 0 splitTables = 0 disassembleInstructions = 0 +forceOverwrite = 0 tables = [] skipTables = [] for option, value in options: @@ -54,6 +53,8 @@ for option, value in options: skipTables.append(value) elif option == "-v": verbose = 1 + elif option == "-f": + forceOverwrite = 1 elif option == "-h": print __doc__ % sys.argv[0] sys.exit(0) @@ -66,20 +67,23 @@ if tables and skipTables: print "-t and -x options are mutually exlusive" sys.exit(2) -if len(args) == 1: - ttPath = args[0] +if not args: + print __doc__ % sys.argv[0] + sys.exit(2) + +for ttPath in args: path, ext = os.path.splitext(ttPath) if splitTables: xmlPath = path else: - xmlPath = path + '.ttx' -elif len(args) == 2: - ttPath, xmlPath = args -else: - print __doc__ % sys.argv[0] - sys.exit(2) - -tt = ttLib.TTFont(ttPath, 0, verbose=verbose) -tt.saveXML(xmlPath, tables=tables, skipTables=skipTables, + xmlPath = path + ".ttx" + if not forceOverwrite and os.path.exists(xmlPath): + answer = raw_input('Overwrite "%s"? ' % xmlPath) + if not answer[:1] in ("Y", "y"): + print "skipped." + continue + print 'Dumping "%s" to "%s"...' % (ttPath, xmlPath) + tt = ttLib.TTFont(ttPath, 0, verbose=verbose) + tt.saveXML(xmlPath, tables=tables, skipTables=skipTables, splitTables=splitTables, disassembleInstructions=disassembleInstructions)