blob: 06b22a3cc1b7048d047cb12b54e54ea943c69cf7 [file] [log] [blame]
#!/bin/sh
list_source_files() {
local d r
d="$(cd "$1" && echo "$PWD")"
r="$d"
while [ "$r" != "/" ] && [ ! -e "$r/.svn" ] && [ ! -e "$r/.git" ] &&
[ ! -e "$r/.hg" ]; do
r="$(dirname "$r")"
done
if [ -e "$r/.svn" ]; then
(
cd "$d" || exit $?
svn status -v | \
grep -vE '^[D?]|^Performing|^$' | \
cut -c3- | \
while read -r a b c f; do
if [ -f "$f" ] || [ -h "$f" ]; then
echo "$a $b $c" >/dev/null
echo "$f"
fi
done
)
elif [ -e "$r/.git" ]; then
subdir="${d#${r}}"
if [ "$r" != "" ]; then
( cd "$d" && git ls-tree --name-only -r HEAD ) | sed "s|^$subdir/||"
else
echo "Ignored directory $1" >&2
fi
elif [ -e "$r/.hg" ]; then
subdir="${d#${r}}"
if [ -n "${subdir}" ]; then
subdir="${subdir#/}/"
hg manifest | sed -n "s|^$subdir||p"
else
hg manifest
fi
else
(
cd "$d" &&
find . -type f -o -type l | \
sed -e 's|^\./||' \
-e '\|\.k\{0,1\}o\(\.\(cm\)\{0,1\}d\)\{0,1\}$|d' \
-e '\|\.mod\(\.c\)\{0,1\}$|d' \
-e '\|/conftest/.*/result-.*\.txt$|d' \
-e '\|/modules\.order$|d' \
-e '\,/Module\.\(symver\|marker\)s$,d' \
-e '\,/\.tmp_versions\(/\|$\),d'
)
fi
}
if [ $# = 0 ]; then
list_source_files "$PWD"
else
for d in "$@"; do list_source_files "$d"; done
fi