Files
zed/script/update-ibm-plex
Peter Tripp 4a9e15b1b1 Switch to upstream IBM Plex fonts.
- Update [@ibm/plex-sans@1.0.0](https://github.com/IBM/plex/releases/tag/%40ibm/plex-sans%401.0.0)
- Update [@ibm/plex-mono@1.0.0](https://github.com/IBM/plex/releases/tag/%40ibm/plex-mono%401.0.0)

```
ca403c56931baef307d20ba64b69acb71abcad61f75e66414661d57484b690ec  ibm-plex-mono/IBMPlexMono-Bold.ttf
0e45a5a540992163229d2a29662553f313fab391757ca2ab3dc8f4e0d9be0979  ibm-plex-mono/IBMPlexMono-BoldItalic.ttf
8ebe04c8c6cc82f0be19896ddc61d9935cdd0f027b0173c1945b8d247d7dfc2a  ibm-plex-mono/IBMPlexMono-Italic.ttf
fe11304a5fe956d5744e9b6a246cc83d90425245e75a62230044966ca96a7f50  ibm-plex-mono/IBMPlexMono-Regular.ttf
9e6c74a889a700d707613d24548fe4ffa6bc59559a0689d2cf9e133bdcdafb2f  ibm-plex-sans/IBMPlexSans-Bold.ttf
0e3142ba2ef31fe5c02f0c6c36424f251609cd6b73880076e21c2e81931ba2b9  ibm-plex-sans/IBMPlexSans-BoldItalic.ttf
a9c6ef9942c49e49d11e11a6dacc0b3a087978757e9b22a06b8ac22a6400fb15  ibm-plex-sans/IBMPlexSans-Italic.ttf
975dcda37d80f038dcd143c22e33ca2d97a0cc5a929aace1c749153b0fe1afa5  ibm-plex-sans/IBMPlexSans-Regular.ttf
```
2024-08-31 00:58:48 -04:00

56 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
set -eu
REPO="https://github.com/IBM/plex"
ASSET_FONTS_DIR="assets/fonts"
FONT_NAMES=("plex-sans" "plex-mono")
FILENAMES=("IBMPlexSans" "IBMPlexMono")
STYLES=("Regular" "Italic" "Bold" "BoldItalic")
run_else() { $1 >/dev/null 2>&1 || { echo "$2"; exit 1; }; }
run_else "gh" "gh CLI missing"
run_else "which unzip" "unzip CLI missing"
run_else "gh auth status" "run: gh auth login"
run_else "ls ${ASSET_FONTS_DIR}" "Not in repo root. Run from repo root."
pushd "${ASSET_FONTS_DIR}"
for i in $(seq 0 $((${#FONT_NAMES[@]} - 1))); do
font="${FONT_NAMES[$i]}"
filename="${FILENAMES[$i]}"
tagName=$(gh release list \
--repo "$REPO" \
--json tagName,createdAt,isDraft,isPrerelease \
--jq '
[.[] | select(.tagName | startswith("'"@ibm/$font"'@"))
| select(.isDraft == false and .isPrerelease == false)
| {tagName, createdAt}]
| sort_by(.tagName | split("@")[2] | split(".") | map(tonumber))
| reverse
| first
| .tagName
')
releaseDate=$(gh api /repos/IBM/plex/releases/tags/"$tagName" --jq '.published_at[:10]')
releaseUrl=$(gh api /repos/IBM/plex/releases/tags/"$tagName" --jq '.html_url')
echo "- Update [${tagName}](${releaseUrl})"
zipFileName=$(gh api /repos/IBM/plex/releases/tags/"$tagName" --jq '.assets[].name | select(endswith(".zip"))')
gh release download "$tagName" \
--repo https://github.com/IBM/plex \
--clobber \
--pattern "$zipFileName"
prefix="ibm-${font}/fonts/complete/ttf"
out_dir="ibm-${font}"
files_to_extract="$prefix/license.txt"
for style in "${STYLES[@]}"; do
files_to_extract+=" $prefix/${filename}-$style.ttf"
done
unzip -q -o -j "$zipFileName" $files_to_extract -d $out_dir
rm "$zipFileName"
done
echo
echo "\`\`\`"
shasum -a 256 */*.ttf
echo "\`\`\`"