summaryrefslogtreecommitdiff
path: root/build-aux/vc-list-files
blob: c7c4dbdaf122b07262221ba4192bda5162409885 (plain)
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
#!/bin/sh
# List the specified version-controlled files.
# With no argument, list them all.
# This script must be run solely from the top of a $srcdir build directory.

# If there's an argument, it must be a single, "."-relative directory name,
# with no trailing slashes.  In mercurial mode, it's used as part of a
# "grep" pattern (prepend "^", append "/"), and in cvs mode, it's simply
# used as an argument to the cvsu script.

include_prefix=
case $# in
  0) ;;
  1) include_prefix=$1 ;;
  *) echo "$0: too many arguments" 1>&2; exit 1 ;;
esac

if test -d .git; then
  if test "x$include_prefix" = x; then
    git-ls-files | cut -d ' ' -f 3
  else
    git-ls-files | cut -d ' ' -f 3 | grep "^$include_prefix/"
  fi
elif test -d .hg; then
  if test "x$include_prefix" = x; then
    hg manifest | cut -d ' ' -f 3
  else
    hg manifest | cut -d ' ' -f 3 | grep "^$include_prefix/"
  fi
elif test -x build-aux/cvsu; then
  build-aux/cvsu --find --types=AFGM $include_prefix
else
  awk -F/ '{				\
      if (!$1 && $3 !~ /^-/) {		\
	f=FILENAME;			\
	sub(/CVS\/Entries/, "", f);	\
	print f $2;			\
      }}'				\
    $(find ${*-*} -name Entries -print) /dev/null;
fi