summaryrefslogtreecommitdiff
path: root/scripts/touchup_for_glass.py
diff options
context:
space:
mode:
authorRoozbeh Pournader <roozbeh@google.com>2014-07-22 12:50:26 -0700
committerRoozbeh Pournader <roozbeh@google.com>2014-07-22 12:50:26 -0700
commit97bb2636965b92cce7deb79eb96bb79af97bd73c (patch)
tree361fb66d9bc9540ba1943baecfb0daa6311d5899 /scripts/touchup_for_glass.py
parent2b5dca5d77e7394df66fa8f2e8a827b1c6fec441 (diff)
Added a hack to add cmap mapping for proportional digit one.
Diffstat (limited to 'scripts/touchup_for_glass.py')
-rwxr-xr-xscripts/touchup_for_glass.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/touchup_for_glass.py b/scripts/touchup_for_glass.py
new file mode 100755
index 0000000..1374e32
--- /dev/null
+++ b/scripts/touchup_for_glass.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+"""Post-build changes for Glass."""
+
+import os
+from os import path
+import sys
+
+from fontTools import ttLib
+from nototools import font_data
+
+
+def apply_glass_hacks(font):
+ """Apply glass-specific hacks."""
+ # Really ugly hack, expecting the proportional digit one to be at
+ # glyph01965.
+ font_data.add_to_cmap(font, {0xEE00: 'glyph01965'})
+
+ # Fix version number from buildnumber.txt
+ from datetime import date
+
+ build_number_txt = path.join(
+ path.dirname(__file__), os.pardir, 'res', 'buildnumber.txt')
+ build_number = open(build_number_txt).read().strip()
+
+ version_record = 'Version 2.0%s; %d; Glass' % (
+ build_number, date.today().year)
+
+ for record in font['name'].names:
+ if record.nameID == 5:
+ if record.platformID == 1 and record.platEncID == 0: # MacRoman
+ record.string = version_record
+ elif record.platformID == 3 and record.platEncID == 1:
+ # Windows UCS-2
+ record.string = version_record.encode('UTF-16BE')
+ else:
+ assert False
+
+
+def correct_font(source_font_name, target_font_name):
+ """Corrects metrics and other meta information."""
+ font = ttLib.TTFont(source_font_name)
+ apply_glass_hacks(font)
+ font.save(target_font_name)
+
+
+def main(argv):
+ """Correct the font specified in the command line."""
+ correct_font(argv[1], argv[2])
+
+
+if __name__ == "__main__":
+ main(sys.argv)