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)