summaryrefslogtreecommitdiff
path: root/build-aux/vc-list-files
blob: df61974f3d02c201c93f80727e8d4fb56db6a51f (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh
# List the specified version-controlled files.

# Copyright (C) 2006, 2007 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


# 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.
# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/

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
  else
    git-ls-files | grep "^$include_prefix/"
  fi
elif test -d .hg; then
  if test "x$include_prefix" = x; then
    hg manifest | cut -d ' ' -f 2
  else
    hg manifest | cut -d ' ' -f 2 | 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