chiark / gitweb /
Add a script to check backward compatibility
authorBen Harris <bjh21@bjh21.me.uk>
Sat, 14 Dec 2024 16:04:46 +0000 (16:04 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Sat, 14 Dec 2024 16:06:18 +0000 (16:06 +0000)
HACKING
compatcheck [new file with mode: 0755]

diff --git a/HACKING b/HACKING
index 42220bc6c96a956d7a97ee502011243ff4b78109..95e86cb78afc6ce8131d343c7b413faef7541db0 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -77,6 +77,9 @@ Bedstead's history to their correct forms.
 
 NOTES - Disorganised jottings about Bedstead and related matters.
 
+compatcheck - A script to compare two versions of Bedstead OTF files
+and report backward incompatibilities.
+
 editor - An interactive editor for Bedstead character shapes.
 Written by Simon Tatham and released under CC0.
 
diff --git a/compatcheck b/compatcheck
new file mode 100755 (executable)
index 0000000..e96e766
--- /dev/null
@@ -0,0 +1,28 @@
+#! /usr/bin/python3
+
+# SPDX-License-Identifier: CC0-1.0
+
+from argparse import ArgumentParser
+from fontTools import ttLib
+from sys import exit
+
+parser = ArgumentParser()
+parser.add_argument("old")
+parser.add_argument("new")
+
+cfg = parser.parse_args()
+
+ttold = ttLib.TTFont(cfg.old)
+ttnew = ttLib.TTFont(cfg.new)
+
+failed = False
+
+def fail(msg):
+    print(f"FAIL: {msg}")
+
+if not (set(ttold.getGlyphOrder()) <= set(ttnew.getGlyphOrder())):
+   fail("Glyphs vanished: "
+        f"{set(ttold.getGlyphOrder()) - set(ttnew.getGlyphOrder())!r}")
+
+if failed:
+    exit(1)