From 562bd0a0f75b014c38b6ff0a712331270d8770bc Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 3 Apr 2008 08:45:00 -0600 Subject: [PATCH] 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 --- ChangeLog | 7 ++++++ build-aux/vc-list-files | 63 ++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 61 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07470b1be..90d0bb2e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-04-03 Eric Blake + + Allow VPATH usage of vc-list-files. + * build-aux/vc-list-files (scriptversion): Add timestamp. + (options): Add --help, --version, -C. + (CVS): Support installed cvsu. + 2008-04-02 Bruno Haible Avoid some "statement with no effect" warnings from gcc. diff --git a/build-aux/vc-list-files b/build-aux/vc-list-files index 1e158bb52..35046d587 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 + exit ;; + + --version) + year=`echo "$scriptversion" | sed 's/[^0-9].*//'` + cat < +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: -- 2.11.0