@@ -0,0 +1,1384 @@
+#!/usr/bin/python%0A%0Afrom fontTools import ttLib%0Afrom fontTools.ttLib.tables import otTables%0Afrom argparse import ArgumentParser%0A%0Aparser = ArgumentParser()%0Aparser.add_argument('infont', help='Input font file')%0Aparser.add_argument('outfont', help='Output font file')%0Aparser.add_argument('-s','--script',default='DFLT', help='Script tag to generate %5BDFLT%5D')%0Aparser.add_argument('-t','--type',default='both', help='Table to create: gpos, gsub, %5Bboth%5D')%0Aargs = parser.parse_args()%0A%0Ainf = ttLib.TTFont(args.infont)%0Afor tag in ('GSUB', 'GPOS') :%0A    if tag.lower() == args.type or args.type == 'both' :%0A        table = ttLib.getTableClass(tag)()%0A        t = getattr(otTables, tag, None)()%0A        t.Version = 1.0%0A        t.ScriptList = otTables.ScriptList()%0A        t.ScriptList.ScriptRecord = %5B%5D%0A        t.FeatureList = otTables.FeatureList()%0A        t.FeatureList.FeatureRecord = %5B%5D%0A        t.LookupList = otTables.LookupList()%0A        t.LookupList.Lookup = %5B%5D%0A        srec = otTables.ScriptRecord()%0A        srec.ScriptTag = args.script%0A        srec.Script = otTables.Script()%0A        srec.Script.DefaultLangSys = None%0A        srec.Script.LangSysRecord = %5B%5D%0A        t.ScriptList.ScriptRecord.append(srec)%0A        t.ScriptList.ScriptCount = 1%0A        t.FeatureList.FeatureCount = 0%0A        t.LookupList.LookupCount = 0%0A        table.table = t%0A        inf%5Btag%5D = table%0Ainf.save(args.outfont)%0A

Add a new fonttools based tool