Update list-unused-images.sh script for recent changes

- Exclude all images in the top-level `img/` folder.
- Take WebP images into account.
- Fix shellcheck warnings.
- Mark the script as executable so it can be run more easily.
This commit is contained in:
Hugo Locurcio
2023-11-07 17:27:54 +01:00
parent d8a2cf9332
commit 49f1f01b41

19
_tools/list-unused-images.sh Normal file → Executable file
View File

@@ -1,4 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
set -uo pipefail
IFS=$'\n\t'
check_git_history=false
@@ -9,19 +12,17 @@ rm -f tmp-unused-images-history
# Exceptions are ignored, and for .svg files we also look for potential .png
# files with the same base name, as they might be sources.
exceptions="docs_logo.svg tween_cheatsheet.png"
files=$(find -name "_build" -prune -o \( -name "*.png" -o -name "*.jpg" -o -name "*.svg" -o -name "*.gif" \) -print | sort)
files=$(find -name "_build" -prune -o \( -iname "*.png" -o -iname "*.webp" -o -iname "*.jpg" -o -iname "*.svg" -o -iname "*.gif" \) -print | sort)
for path in $files; do
file=$(basename $path)
if echo "$exceptions" | grep -q "$file"; then
file=$(basename "$path")
if [[ "$path" == *./img/* ]]; then
continue
fi
ext=${file##*.}
base=${file%.*}
found=$(rg -l ":: .*[ /]$file")
if [ -z "$found" -a "$ext" == "svg" ]; then
if [ -z "$found" ] && [ "$ext" == "svg" ]; then
# May be source file.
found=$(rg -l ":: .*[ /]$base.png")
fi
@@ -30,11 +31,13 @@ for path in $files; do
fi
done
echo "Wrote list of unused images to: tmp-unused-images"
if [ "$check_git_history" = true ]; then
for file in $(cat tmp-unused-images); do
echo "File: $file"
git log --diff-filter=A --follow $file
git log --diff-filter=A --follow "$file"
echo
done > tmp-unused-images-history
echo "Wrote list of unused images in Git history to: tmp-unused-images-history"
fi