Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QKxGW1raAWaqeU8WdHsMsp
37 lines
1.1 KiB
Bash
Executable File
37 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# omarchy:summary=Check Chinese font availability and fallback correctness
|
|
# omarchy:examples=omarchycn font status
|
|
|
|
set -euo pipefail
|
|
|
|
failures=0
|
|
|
|
for family in "Noto Sans CJK SC" "Noto Serif CJK SC" "Noto Sans Mono CJK SC"; do
|
|
matched=$(fc-match --format '%{family}' "$family")
|
|
if [[ $matched == *"$family"* ]]; then
|
|
echo "PASS font: $family"
|
|
else
|
|
echo "FAIL font: $family missing (got: $matched)"
|
|
failures=$((failures + 1))
|
|
fi
|
|
done
|
|
|
|
zh_sans=$(fc-match --format '%{family}' sans-serif:lang=zh-cn)
|
|
if [[ $zh_sans == *"CJK SC"* ]]; then
|
|
echo "PASS fallback: zh-cn sans-serif -> $zh_sans"
|
|
else
|
|
echo "FAIL fallback: zh-cn sans-serif -> $zh_sans (expected SC variant)"
|
|
failures=$((failures + 1))
|
|
fi
|
|
|
|
# Untagged requests (Chromium/Electron path) must reach SC before JP/KR
|
|
untagged=$(fc-match --sort sans-serif | grep -m1 -oE 'CJK (SC|JP|TC|KR|HK)' || true)
|
|
if [[ $untagged == "CJK SC" ]]; then
|
|
echo "PASS fallback: untagged CJK -> SC"
|
|
else
|
|
echo "FAIL fallback: untagged CJK -> ${untagged:-none} (expected SC)"
|
|
failures=$((failures + 1))
|
|
fi
|
|
|
|
exit $((failures > 0 ? 1 : 0))
|