summaryrefslogtreecommitdiff
path: root/build-aux/vc-list-files
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2008-04-03 08:45:00 -0600
committerEric Blake <ebb9@byu.net>2008-04-03 08:52:49 -0600
commit562bd0a0f75b014c38b6ff0a712331270d8770bc (patch)
treece2255bde8153ba5088d367cf93a79f94e99e32c /build-aux/vc-list-files
parentd757f9a9431efc7e18eee44e7cb36c943c7aebcb (diff)
downloadgnulib-562bd0a0f75b014c38b6ff0a712331270d8770bc.tar.gz
Allow VPATH usage of vc-list-files.
* build-aux/vc-list-files (scriptversion): Add timestamp. (options): Add --help, --version, -C. (CVS): Support installed cvsu. Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'build-aux/vc-list-files')
-rwxr-xr-xbuild-aux/vc-list-files63
1 files changed, 54 insertions, 9 deletions
diff --git a/build-aux/vc-list-files b/build-aux/vc-list-files
index 1e158bb521..35046d5878 100755
--- a/build-aux/vc-list-files
+++ b/build-aux/vc-list-files
@@ -1,6 +1,9 @@
#!/bin/sh
# List version-controlled file names.
+# Print a version string.
+scriptversion=2008-04-03.14
+
# Copyright (C) 2006-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -20,38 +23,80 @@
# List the specified version-controlled files.
# With no argument, list them all. With a single DIRECTORY argument,
# list the version-controlled files in that directory.
-# 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.
# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
+postprocess=
+case $1 in
+ --help) cat <<EOF
+Usage: $0 [-C SRCDIR] [DIR]
+
+Output a list of version-controlled files in DIR (default .), relative to
+SRCDIR (default .). SRCDIR must be the top directory of a checkout.
+
+Options:
+ --help print this help, then exit
+ --version print version number, then exit
+ -C SRCDIR change directory to SRCDIR before generating list
+
+Report bugs and patches to <bug-gnulib@gnu.org>.
+EOF
+ exit ;;
+
+ --version)
+ year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
+ cat <<EOF
+vc-list-files $scriptversion
+Copyright (C) $year Free Software Foundation, Inc,
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+EOF
+ exit ;;
+
+ -C)
+ postprocess="| sed 's|^|$2/|'"
+ cd "$2" || exit 1
+ shift; shift ;;
+esac
+
dir=
case $# in
0) ;;
1) dir=$1 ;;
*) echo "$0: too many arguments" 1>&2
- echo "Usage: $0 [DIR]" 1>&2; exit 1;;
+ echo "Usage: $0 [-C srcdir] [DIR]" 1>&2; exit 1;;
esac
test "x$dir" = x && dir=.
if test -d .git; then
- exec git ls-files "$dir"
+ eval exec git ls-files '"$dir"' $postprocess
elif test -d .hg; then
- exec hg locate "$dir/*"
+ eval exec hg locate '"$dir/*"' $postprocess
elif test -d CVS; then
if test -x build-aux/cvsu; then
- build-aux/cvsu --find --types=AFGM "$dir"
+ eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
+ elif (cvsu --help) >/dev/null 2>&1; then
+ eval cvsu --find --types=AFGM '"$dir"' $postprocess
else
- awk -F/ '{ \
+ eval awk -F/ \''{ \
if (!$1 && $3 !~ /^-/) { \
f=FILENAME; \
sub(/CVS\/Entries/, "", f); \
print f $2; \
- }}' \
- $(find ${*-*} -name Entries -print) /dev/null;
+ }}'\'' \
+ $(find ${*-*} -name Entries -print) /dev/null' $postprocess
fi
else
- echo "$0: Failed to determine type of version control used in "`pwd` 1>&2
+ echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
exit 1
fi
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End: