From 032e06b7621a5d444257b466949bb99ddcb36bb0 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Tue, 23 Aug 2022 17:36:33 -0700 Subject: [PATCH] Meta: Only include headings for populated groups/subgroups in emoji.txt The primary motivation for this is to make `generate-emoji-txt.sh` more useful for generating a compact list of new emoji being added (e.g. for use in commit messages / PRs) if it's run with an emoji image directory that contains only the new emojis. --- Meta/generate-emoji-txt.sh | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/Meta/generate-emoji-txt.sh b/Meta/generate-emoji-txt.sh index 9b247025e5..f195aa4d0d 100755 --- a/Meta/generate-emoji-txt.sh +++ b/Meta/generate-emoji-txt.sh @@ -15,14 +15,16 @@ OUTPUT_PATH="$3" :>| "$OUTPUT_PATH" first_heading=true +printed_group_header=false +printed_subgroup_header=false while IFS= read -r line do - if [[ $line == \#\ subgroup:\ * || $line == \#\ group:\ * ]]; then - if [ $first_heading = false ]; then - echo "" >> "$OUTPUT_PATH" - fi - echo "$line" >> "$OUTPUT_PATH" - first_heading=false + if [[ $line == \#\ group:\ * ]]; then + current_group="$line" + printed_group_header=false + elif [[ $line == \#\ subgroup:\ * ]]; then + current_subgroup="$line" + printed_subgroup_header=false elif [[ ${#line} -ne 0 && $line != \#* ]]; then codepoints_string=${line%%;*} IFS=" " read -r -a codepoints <<< "$codepoints_string" @@ -45,6 +47,20 @@ do lookup_filename="${lookup_filename_parts[*]}.png" if [ -f "$EMOJI_DIR/$lookup_filename" ]; then + if [ $printed_group_header = false ]; then + if [ $first_heading = false ]; then + echo "" >> "$OUTPUT_PATH" + fi + echo "$current_group" >> "$OUTPUT_PATH" + first_heading=false + printed_group_header=true + fi + if [ $printed_subgroup_header = false ]; then + echo "" >> "$OUTPUT_PATH" + echo "$current_subgroup" >> "$OUTPUT_PATH" + printed_subgroup_header=true + fi + emoji_and_name=${line#*# } emoji=${emoji_and_name%% E*} name_with_version=${emoji_and_name#* }