summaryrefslogtreecommitdiff
path: root/scripts/list-sources.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/list-sources.sh')
-rwxr-xr-xscripts/list-sources.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/list-sources.sh b/scripts/list-sources.sh
new file mode 100755
index 0000000000..41c8b9eadd
--- /dev/null
+++ b/scripts/list-sources.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# List all the files under version control in the source tree.
+#
+
+case $# in
+0) ;;
+1) cd "$1" ;;
+*) echo >&2 "Usage: $0 [top_srcdir]"; exit 2 ;;
+esac
+
+if [ -r CVS/Entries ]; then
+
+ ${CVS:-cvs} status 2>&1 | ${AWK:-awk} '
+NF >= 2 && $(NF - 1) == "Examining" { dir = $NF }
+$1 == "File:" { print (dir == ".") ? $2 : (dir "/" $2) }'
+ exit $?
+
+elif [ -r .svn/entries ]; then
+
+ ${SVN:-svn} ls -R | sed '/\/$/d'
+ exit $?
+
+elif [ -r MT/options ]; then
+
+ exec ${MONOTONE:-monotone} list known
+
+elif [ -r .git/HEAD ]; then
+
+ exec ${GIT:-git} ls-files
+
+fi
+
+echo >&2 'Cannot list sources without some version control system in use.'
+exit 1