diff --git a/Meta/check-emoji.sh b/Meta/check-emoji.sh new file mode 100755 index 0000000000..9d1c5766fe --- /dev/null +++ b/Meta/check-emoji.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -eo pipefail + +script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P) +cd "${script_path}/.." + +files=() +for file in Base/res/emoji/*.png; do + files+=("${file}") +done + +found_invalid_filenames=0 +for fn in "${files[@]}"; do + basename=$(basename "$fn" .png) + if [[ $basename =~ [^A-Z0-9+_] ]] ; then + echo "$fn contains invalid characters in its filename. Only uppercase letters, numbers, +, and _ should be used." + found_invalid_filenames=1 + fi + if [[ $basename == *+U* ]] ; then + echo "$fn is incorrectly named. _ should be used as a separator between codepoints, not +." + found_invalid_filenames=1 + fi + if [[ $basename == *_U+FE0F* ]] ; then + echo "$fn should not include any emoji presentation selectors. U+FE0F codepoints should be removed from the filename." + found_invalid_filenames=1 + fi +done + +exit $found_invalid_filenames diff --git a/Meta/lint-ci.sh b/Meta/lint-ci.sh index 10ef401cb6..14db5da60a 100755 --- a/Meta/lint-ci.sh +++ b/Meta/lint-ci.sh @@ -22,6 +22,7 @@ set +e for cmd in \ Meta/check-ak-test-files.sh \ Meta/check-debug-flags.sh \ + Meta/check-emoji.sh \ Meta/check-markdown.sh \ Meta/check-newlines-at-eof.py \ Meta/check-png-sizes.sh \