summaryrefslogtreecommitdiff
path: root/misc/tools/gen-instance-ufo.sh
diff options
context:
space:
mode:
Diffstat (limited to 'misc/tools/gen-instance-ufo.sh')
-rwxr-xr-xmisc/tools/gen-instance-ufo.sh69
1 files changed, 69 insertions, 0 deletions
diff --git a/misc/tools/gen-instance-ufo.sh b/misc/tools/gen-instance-ufo.sh
new file mode 100755
index 000000000..b8deb0632
--- /dev/null
+++ b/misc/tools/gen-instance-ufo.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+set -e
+PROG=${0##*/}
+DESIGNSPACE=$1
+UFO=$2
+
+INSTANCE_Light="Inter Light"
+INSTANCE_ExtraLight="Inter Extra Light"
+INSTANCE_Medium="Inter Medium"
+INSTANCE_SemiBold="Inter Semi Bold"
+INSTANCE_Bold="Inter Bold"
+INSTANCE_ExtraBold="Inter Extra Bold"
+
+INSTANCE_DisplayLight="Inter Display Light"
+INSTANCE_DisplayExtraLight="Inter Display Extra Light"
+INSTANCE_DisplayMedium="Inter Display Medium"
+INSTANCE_DisplaySemiBold="Inter Display Semi Bold"
+INSTANCE_DisplayBold="Inter Display Bold"
+INSTANCE_DisplayExtraBold="Inter Display Extra Bold"
+
+INSTANCE_LightItalic="Inter Light Italic"
+INSTANCE_ExtraLightItalic="Inter Extra Light Italic"
+INSTANCE_MediumItalic="Inter Medium Italic"
+INSTANCE_SemiBoldItalic="Inter Semi Bold Italic"
+INSTANCE_BoldItalic="Inter Bold Italic"
+INSTANCE_ExtraBoldItalic="Inter Extra Bold Italic"
+
+INSTANCE_DisplayLightItalic="Inter Display Light Italic"
+INSTANCE_DisplayExtraLightItalic="Inter Display Extra Light Italic"
+INSTANCE_DisplayMediumItalic="Inter Display Medium Italic"
+INSTANCE_DisplaySemiBoldItalic="Inter Display Semi Bold Italic"
+INSTANCE_DisplayBoldItalic="Inter Display Bold Italic"
+INSTANCE_DisplayExtraBoldItalic="Inter Display Extra Bold Italic"
+
+MASTER_Thin=1
+MASTER_Regular=1
+MASTER_Black=1
+MASTER_ThinItalic=1
+MASTER_Italic=1
+MASTER_BlackItalic=1
+MASTER_DisplayThin=1
+MASTER_Display=1
+MASTER_DisplayBlack=1
+MASTER_DisplayThinItalic=1
+MASTER_DisplayItalic=1
+MASTER_DisplayBlackItalic=1
+
+_err() { echo "$PROG: $@" >&2; exit 1; }
+
+# build/ufo/Inter-DisplayExtraBold.ufo -> DisplayExtraBold
+UFO_NAME=$(basename "$UFO" .ufo)
+case "$UFO_NAME" in Inter-*) UFO_NAME=${UFO_NAME:6} ;; esac
+
+# DisplayExtraBold -> "Inter Display Extra Bold"
+INSTANCE=INSTANCE_${UFO_NAME} ; INSTANCE=${!INSTANCE}
+
+# If UFO is not an instance, assume that it's a master (or else error)
+# master UFOs are byproducts of building Inter.designspace, so we just update mtime.
+if [ -z "$INSTANCE" ]; then
+ MASTER=MASTER_${UFO_NAME}
+ [ -n "${!MASTER}" ] || _err "Failed to map UFO name \"$UFO_NAME\" to instance"
+ echo "touch $UFO"
+ touch "$UFO"
+ exit
+fi
+
+set -x
+fontmake -o ufo -m "$DESIGNSPACE" --output-path "$UFO" -i "$INSTANCE"
+exec python misc/tools/postprocess_instance_ufo.py "$UFO"