new place and names for scripts/tools


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@192 4cde692c-a291-49d1-8350-778aa11640f8
diff --git a/Tools/ttcompile b/Tools/ttcompile
new file mode 100755
index 0000000..12f8bb4
--- /dev/null
+++ b/Tools/ttcompile
@@ -0,0 +1,95 @@
+#! /usr/bin/env python
+
+"""\
+usage: ttcompile [-hvbf] [-d output-dir] [-i TTF-input-file] [TTX-file...]
+
+    Translate a TTX file (as output by ttDump) to a TrueType font file. 
+    If a TTX-file argument is a directory instead of a file, all files in
+    that directory ending in '.ttx' will be merged into one TrueType file. 
+    This is mostly useful in conjunction with the -s option of ttDump.py.
+
+    Options:
+    -h Help: print this message
+    -i TrueType-input-file: specify a TT file to be merged with the TTX file.
+       This option is only valid when at most one TTX file (or directory
+       containing separated TTX files) is specified.
+    -b Don't recalc glyph boundig boxes: use the values in the TTX file as-is.
+    -d <output-dir> Specify a directory in which the output file(s)
+       should end up. The directory must exist.
+    -f Force overwriting existing files.
+    -v Verbose: messages will be written to stdout about what is being done
+"""
+
+import sys, os, getopt
+from fontTools import ttLib
+
+def usage():
+	print __doc__
+	sys.exit(2)
+
+try:
+	options, args = getopt.getopt(sys.argv[1:], "hvbfd:i:")
+except getopt.GetoptError:
+	usage()
+
+# default values
+verbose = 0
+ttInFile = None
+recalcBBoxes = 1
+forceOverwrite = 0
+outputDir = None
+
+for option, value in options:
+	if option == "-i":
+		ttInFile = value
+	elif option == "-v":
+		verbose = 1
+	elif option == "-h":
+		print __doc__
+		sys.exit(0)
+	elif option == "-b":
+		recalcBBoxes = 0
+	elif option == "-d":
+		outputDir = value
+	elif option == "-f":
+		forceOverwrite = 1
+
+if not args:
+	usage()
+
+if ttInFile and len(args) > 1:
+	print "Must specify exactly one TTX file (or directory) when using -i"
+	sys.exit(2)
+
+
+for xmlPath in args:
+	path, ext = os.path.splitext(xmlPath)
+	if outputDir is not None:
+		fileName = os.path.basename(path)
+		path = os.path.join(outputDir, fileName)
+	ttPath = path + '.ttf'
+	
+	if not forceOverwrite and os.path.exists(ttPath):
+		answer = raw_input('Overwrite "%s"? ' % ttPath)
+		if not answer[:1] in ("Y", "y"):
+			print "skipped."
+			continue
+	
+	print 'Compiling "%s" to "%s"...' % (xmlPath, ttPath)
+	
+	tt = ttLib.TTFont(ttInFile, recalcBBoxes=recalcBBoxes, verbose=verbose)
+
+	if os.path.isdir(xmlPath):
+		import glob
+		files = glob.glob1(xmlPath, "*.ttx")
+		for xmlFile in files:
+			xmlFile = os.path.join(xmlPath, xmlFile)
+			tt.importXML(xmlFile)
+	else:
+		tt.importXML(xmlPath)
+
+	tt.save(ttPath)
+
+	if verbose:
+		import time
+		print "%s finished at" % sys.argv[0], time.strftime("%H:%M:%S", time.localtime(time.time()))