forked from util-linux/util-linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate-potfiles
executable file
·41 lines (35 loc) · 1.06 KB
/
update-potfiles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh
#
# Copyright (C) 2009 Karel Zak <[email protected]>
#
# 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