42 lines
1.1 KiB
Bash
Executable File
42 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2009 Karel Zak <kzak@redhat.com>
|
|
#
|
|
|
|
# find all git-tracked and existing *.c and *.h files
|
|
# exclude some (sub)directories
|
|
# sort the list
|
|
|
|
if [ ! -f "po/Makevars" ]; then
|
|
echo "error: update-potfiles must run in the top-level directory" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# find all git-tracked files
|
|
source_files=$(git ls-files . 2>/dev/null)
|
|
if [ $? -ne 0 ] || [ -z "$source_files" ]; then
|
|
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' \
|
|
-e '/^Documentation\//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
|