#!/usr/bin/env python import argparse from fontTools import ttLib def update_font_revision(font, revisionSpec): if revisionSpec.startswith('+'): font['head'].fontRevision += float(revisionSpec[1:]) else: font['head'].fontRevision = float(revisionSpec) def main(): args_parser = argparse.ArgumentParser(description='Update font file metadata') args_parser.add_argument('--input', help='Input otf/ttf font file.') args_parser.add_argument('--output', help='Output file for updated font file.') args_parser.add_argument('--revision', help='Updated font revision. Use + to update revision based on the current revision') args = args_parser.parse_args() font = ttLib.TTFont(args.input, recalcTimestamp=False) update_font_revision(font, args.revision) font.save(args.output) if __name__ == "__main__": main()