1*e1fe3e4aSElliott Hughesimport sys 2*e1fe3e4aSElliott Hughesimport os 3*e1fe3e4aSElliott Hughesfrom fontTools.ttx import makeOutputFileName 4*e1fe3e4aSElliott Hughesfrom fontTools.ttLib import TTFont 5*e1fe3e4aSElliott Hughes 6*e1fe3e4aSElliott Hughes 7*e1fe3e4aSElliott Hughesdef main(args=None): 8*e1fe3e4aSElliott Hughes if args is None: 9*e1fe3e4aSElliott Hughes args = sys.argv[1:] 10*e1fe3e4aSElliott Hughes 11*e1fe3e4aSElliott Hughes if len(args) < 2: 12*e1fe3e4aSElliott Hughes print( 13*e1fe3e4aSElliott Hughes "usage: merge_woff_metadata.py METADATA.xml " "INPUT.woff [OUTPUT.woff]", 14*e1fe3e4aSElliott Hughes file=sys.stderr, 15*e1fe3e4aSElliott Hughes ) 16*e1fe3e4aSElliott Hughes return 1 17*e1fe3e4aSElliott Hughes 18*e1fe3e4aSElliott Hughes metadata_file = args[0] 19*e1fe3e4aSElliott Hughes with open(metadata_file, "rb") as f: 20*e1fe3e4aSElliott Hughes metadata = f.read() 21*e1fe3e4aSElliott Hughes 22*e1fe3e4aSElliott Hughes infile = args[1] 23*e1fe3e4aSElliott Hughes if len(args) > 2: 24*e1fe3e4aSElliott Hughes outfile = args[2] 25*e1fe3e4aSElliott Hughes else: 26*e1fe3e4aSElliott Hughes filename, ext = os.path.splitext(infile) 27*e1fe3e4aSElliott Hughes outfile = makeOutputFileName(filename, None, ext) 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hughes font = TTFont(infile) 30*e1fe3e4aSElliott Hughes 31*e1fe3e4aSElliott Hughes if font.flavor not in ("woff", "woff2"): 32*e1fe3e4aSElliott Hughes print("Input file is not a WOFF or WOFF2 font", file=sys.stderr) 33*e1fe3e4aSElliott Hughes return 1 34*e1fe3e4aSElliott Hughes 35*e1fe3e4aSElliott Hughes data = font.flavorData 36*e1fe3e4aSElliott Hughes 37*e1fe3e4aSElliott Hughes # this sets the new WOFF metadata 38*e1fe3e4aSElliott Hughes data.metaData = metadata 39*e1fe3e4aSElliott Hughes 40*e1fe3e4aSElliott Hughes font.save(outfile) 41*e1fe3e4aSElliott Hughes 42*e1fe3e4aSElliott Hughes 43*e1fe3e4aSElliott Hughesif __name__ == "__main__": 44*e1fe3e4aSElliott Hughes sys.exit(main()) 45