#!/bin/sh # # Copyright (C) 2009 Karel Zak # # 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 # 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 if [ $? -ne 0 ] || [ -z "$source_files" ]; then source_files=$(find . -type f -printf "%P\\n" 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