mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8921 d57e44dd-8a1f-0410-8b47-8ef2f437770f
61 lines
1.3 KiB
Bash
Executable File
61 lines
1.3 KiB
Bash
Executable File
#!/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
|