b9f38f95e3
Regex are a crude tool for analyzing whether some code *calls* a particular function. Spidermonkey has Reflect.parse() that returns the AST of the passed in code, which allows for a much more precise check for javascript. The old script is still used for C code, where i18n-affecting changes are much rarer. Based heavily on Philip Chimento's mozjs migration script at https://gitlab.gnome.org/ptomato/moz60tool. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1941>
31 lines
630 B
Bash
Executable File
31 lines
630 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
srcdirs="src subprojects/extensions-tool"
|
|
|
|
# find source files that contain gettext keywords
|
|
files=$(grep -lR --include='*.c' '\(gettext\|[^I_)]_\)(' $srcdirs)
|
|
|
|
# filter out excluded files
|
|
if [ -f po/POTFILES.skip ]; then
|
|
files=$(for f in $files; do ! grep -q ^$f po/POTFILES.skip && echo $f; done)
|
|
fi
|
|
|
|
# find those that aren't listed in POTFILES.in
|
|
missing=$(for f in $files; do ! grep -q ^$f po/POTFILES.in && echo $f; done)
|
|
|
|
if [ ${#missing} -eq 0 ]; then
|
|
exit 0
|
|
fi
|
|
|
|
cat >&2 <<EOT
|
|
|
|
The following files are missing from po/POTFILES.po:
|
|
|
|
EOT
|
|
for f in $missing; do
|
|
echo " $f" >&2
|
|
done
|
|
echo >&2
|
|
|
|
exit 1
|