| #!/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 |