build-sys: fix update-potfiles script
Now are using "git ls-files" to avoid finding non-project files or autoheaders which could break the dist tarball. For non-git source dirs we assume that any existing POTFILES.in is up-todate (build from tarball) or we provide at least an empty list to not be a show-stopper for builds from poor "git archive". Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
This commit is contained in:
parent
f339d2a5c2
commit
0a8e0e8b2f
|
@ -3,16 +3,38 @@
|
||||||
# Copyright (C) 2009 Karel Zak <kzak@redhat.com>
|
# Copyright (C) 2009 Karel Zak <kzak@redhat.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
# find all *.c files,
|
# find all git-tracked and existing *.c and *.h files
|
||||||
|
# exclude some (sub)directories
|
||||||
# sort the list
|
# sort the list
|
||||||
# exclude /samples/ subdirectories
|
|
||||||
# exclude ./tests/ from the list
|
|
||||||
# and remove "./" prefix
|
|
||||||
|
|
||||||
[ ! -f "po/Makevars" ] && \
|
if [ ! -f "po/Makevars" ]; then
|
||||||
echo "You must run this script in the top-level directory"
|
echo "error: update-potfiles must run in the top-level directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
find -name "*.c" -or -name "*.h" | \
|
# find all git-tracked files
|
||||||
sort | \
|
source_files=$(git ls-files . 2>/dev/null)
|
||||||
sed '/samples/d; /config\.h/d; /util-linux-.*/d; /\.\/tests/d; s/^\.\///' \
|
if [ $? -ne 0 ] || [ -z "$source_files" ]; then
|
||||||
> po/POTFILES.in
|
echo "$0: warning: update-potfiles requires git" >&2
|
||||||
|
# we still go through the rest of this script to provide at least an empty
|
||||||
|
# list or remove non-existing (deleted) files
|
||||||
|
source_files=$(cat po/POTFILES.in 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# apply include/exclude patterns
|
||||||
|
source_files=$(
|
||||||
|
echo "$source_files" \
|
||||||
|
| sed \
|
||||||
|
-e '/\(\.h\|\.c\)$/!d' \
|
||||||
|
-e '/^tests\//d' \
|
||||||
|
-e '/\/samples\//d' \
|
||||||
|
)
|
||||||
|
|
||||||
|
# throw away non-existing files (dirty git repo)
|
||||||
|
echo "$source_files" \
|
||||||
|
| xargs -r find 2>/dev/null \
|
||||||
|
| sort \
|
||||||
|
> po/POTFILES.in
|
||||||
|
|
||||||
|
# if this script is broken then we have probably an empty list
|
||||||
|
[ -s po/POTFILES.in ] || echo "$0: warning: po/POTFILES.in is empty" >&2
|
||||||
|
|
Loading…
Reference in New Issue