diff options
author | peter <peter@FreeBSD.org> | 1996-02-07 14:35:44 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1996-02-07 14:35:44 +0000 |
commit | 969a800fc6467d43f03cd917e06054e2cb630bef (patch) | |
tree | 447a731348de921250f1f6271140330c03e54349 /CVSROOT | |
parent | 3d53aca0387a031d14bea7d076f849aea9694a3f (diff) | |
download | FreeBSD-ports-969a800fc6467d43f03cd917e06054e2cb630bef.zip FreeBSD-ports-969a800fc6467d43f03cd917e06054e2cb630bef.tar.gz |
Attempt to fix some outstanding bugs/misfeatures/bogons in the CVSROOT
code, as well as simplifying some admin procedures.
The main change is to stop multi-directory commits only having the subject
info of the last directory, and not being sent to all the lists, and not
being logged to the appropriate commitlogs.
updateCVSROOT is gone (yay!), it's functionality is replaced by a cvs-1.6
feature - the 'checkoutlist' file, which is designed explicitly for this.
This will stop the easy-import users from getting told the mailing list
is out of date when a committer has been added but had missed out on being
put on the cvs-committers mailing list.
Update the comments and info in the *info files with the cvs-1.6 headers,
this fixes a few typos, clarifys some things, corrects some misleading
comments, etc.
Some stub files added to indicate how new cvs-1.6+ functionality is used,
but left commented out (taginfo, cvswrappers, etc)
All hard-coded references to /home/ncvs are changed back to $CVSROOT
(as suggested to me by bde) now that cvs-1.6+ makes a special effort
to ensure $CVSROOT is always set. This allows the $CVSROOT files to be
used elsewhere (eg: for testing) with much less pain.
mkavail is history as well, it was often being forgotten. cvs-committers
now takes the user list from /etc/group:ncvs via a trivial perl script.
This is so that we still have the ability to temporarily disable commit
access via 'avail' without cutting off the cvs-committers mailing list.
Since /etc/group editing is still required, this is not a new admin
overhead. If we ever change so that membership of "ncvs" is not required
(eg: /usr/bin/cvs becomes setgid and access control is via avail) then
we are going to have to do it some other way. (I have ideas)
I have tested this on my machines, but it is possible that I have missed
something. As usual, please yell if I've botched it.
Diffstat (limited to 'CVSROOT')
-rw-r--r-- | CVSROOT/checkoutlist | 27 | ||||
-rwxr-xr-x | CVSROOT/commit_prep.pl | 4 | ||||
-rwxr-xr-x | CVSROOT/commitcheck | 4 | ||||
-rw-r--r-- | CVSROOT/commitinfo | 18 | ||||
-rwxr-xr-x | CVSROOT/cvs_acls.pl | 5 | ||||
-rwxr-xr-x | CVSROOT/cvsedit | 2 | ||||
-rw-r--r-- | CVSROOT/cvswrappers | 29 | ||||
-rw-r--r-- | CVSROOT/editinfo | 10 | ||||
-rwxr-xr-x | CVSROOT/log_accum.pl | 102 | ||||
-rw-r--r-- | CVSROOT/loginfo | 46 | ||||
-rwxr-xr-x | CVSROOT/mkavail | 22 | ||||
-rw-r--r-- | CVSROOT/rcsinfo | 13 | ||||
-rw-r--r-- | CVSROOT/taginfo | 25 | ||||
-rwxr-xr-x | CVSROOT/unwrap | 21 | ||||
-rwxr-xr-x | CVSROOT/updateCVSROOT | 28 | ||||
-rwxr-xr-x | CVSROOT/wrap | 21 |
16 files changed, 257 insertions, 120 deletions
diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist new file mode 100644 index 0000000..bed9b68 --- /dev/null +++ b/CVSROOT/checkoutlist @@ -0,0 +1,27 @@ +# +# $Id$ +# +# The "checkoutlist" file is used to support additional version controlled +# administrative files in $CVSROOT/CVSROOT, such as template files. +# +# The first entry on a line is a filename which will be checked out from +# the corresponding RCS file in the $CVSROOT/CVSROOT directory. +# The remainder of the line is an error message to use if the file cannot +# be checked out. +# +# File format: +# +# [<whitespace>]<filename><whitespace><error message><end-of-line> +# +# comment lines begin with '#' +# +avail +commit_prep.pl +commitcheck +cvs_acls.pl +cvsedit +cvswrappers +log_accum.pl +rcstemplate +unwrap +wrap diff --git a/CVSROOT/commit_prep.pl b/CVSROOT/commit_prep.pl index e965af8..78526c1 100755 --- a/CVSROOT/commit_prep.pl +++ b/CVSROOT/commit_prep.pl @@ -1,6 +1,6 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # -# $FreeBSD$ +# $Id$ # # # Perl filter to handle pre-commit checking of files. This program diff --git a/CVSROOT/commitcheck b/CVSROOT/commitcheck index 7d9b5c3..4f62383 100755 --- a/CVSROOT/commitcheck +++ b/CVSROOT/commitcheck @@ -11,8 +11,8 @@ freefall*) exit 1 esac -if /usr/bin/perl $CVSROOT/CVSROOT/cvs_acls.pl ${1+"$@"}; then - if /usr/bin/perl $CVSROOT/CVSROOT/commit_prep.pl ${1+"$@"}; then +if $CVSROOT/CVSROOT/cvs_acls.pl ${1+"$@"}; then + if $CVSROOT/CVSROOT/commit_prep.pl ${1+"$@"}; then exit 0 fi fi diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo index 17ae416..841dd6e 100644 --- a/CVSROOT/commitinfo +++ b/CVSROOT/commitinfo @@ -1,6 +1,5 @@ # -# commitinfo,v 1.2 1992/03/31 04:19:47 berliner Exp -# $FreeBSD$ +# $Id$ # # The "commitinfo" file is used to control pre-commit checks. # The filter on the right is invoked with the repository and a list @@ -8,16 +7,15 @@ # cause the commit to be aborted. # # The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is the -# name of the filter to run. +# against the directory that the change is being committed to, relative +# to the $CVSROOT. For the first match that is found, then the remainder +# of the line is the name of the filter to run. # # If the repository name does not match any of the regular expressions in this # file, the "DEFAULT" line is used, if it is specified. # -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. +# If the name "ALL" appears as a regular expression it is always used +# in addition to the first matching regex or "DEFAULT". # -#^cvs checkforcvsid -#DEFAULT checkforid -ALL /home/ncvs/CVSROOT/commitcheck +# +ALL $CVSROOT/CVSROOT/commitcheck diff --git a/CVSROOT/cvs_acls.pl b/CVSROOT/cvs_acls.pl index 0ea4ef7..9f27474 100755 --- a/CVSROOT/cvs_acls.pl +++ b/CVSROOT/cvs_acls.pl @@ -1,7 +1,6 @@ -#!/usr/bin/perl -- # -*-Perl-*- +#!/usr/bin/perl # -# cvs_acls.pl,v 1.2 1992/04/11 16:01:24 berliner Exp -# $FreeBSD$ +# $Id$ # # Access control lists for CVS. dgg@ksr.com (David G. Grubbs) # diff --git a/CVSROOT/cvsedit b/CVSROOT/cvsedit index 354ab03..24453b9 100755 --- a/CVSROOT/cvsedit +++ b/CVSROOT/cvsedit @@ -6,7 +6,7 @@ # To use this, make it executable, and set your editinfo DEFAULT line: # DEFAULT /path/to/this/program # -# $Id: cvsedit,v 1.8 1995/08/28 12:14:04 rgrimes Exp $ +# $Id$ # # same rules as CVS diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers new file mode 100644 index 0000000..611a1b7 --- /dev/null +++ b/CVSROOT/cvswrappers @@ -0,0 +1,29 @@ +# +# $Id$ +# +# This file describes wrappers and other binary files to CVS. +# +# Wrappers are the concept where directories of files are to be +# treated as a single file. The intended use is to wrap up a wrapper +# into a single tar such that the tar archive can be treated as a +# single binary file in CVS. +# +# To solve the problem effectively, it was also necessary to be able to +# prevent rcsmerge from merging these files. +# +# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) +# +# wildcard [option value][option value]... +# +# where option is one of +# -f from cvs filter value: path to filter +# -t to cvs filter value: path to filter +# -m update methodology value: MERGE or COPY +# +# and value is a single-quote delimited value. +# +# +#*.nib -f '$CVSROOT/CVSROOT/unwrap %s' -t '$CVSROOT/CVSROOT/wrap %s %s' +#*.rtfd -f '$CVSROOT/CVSROOT/unwrap %s' -t '$CVSROOT/CVSROOT/wrap %s %s' +#*.draw -f '$CVSROOT/CVSROOT/unwrap %s' -t '$CVSROOT/CVSROOT/wrap %s %s' +#*.tiff -m 'COPY' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo index bf43161..49bc7e7 100644 --- a/CVSROOT/editinfo +++ b/CVSROOT/editinfo @@ -1,6 +1,5 @@ # -# editinfo,v 1.1 1992/03/21 06:49:39 berliner Exp -# $FreeBSD$ +# $Id$ # # The "editinfo" file is used to allow verification of logging # information. It works best when a template (as specified in the @@ -28,9 +27,8 @@ # supported. There can be only one entry that matches a given # repository. # -#DEFAULT $CVSROOT/CVSROOT/edit +# Note there is no "edit" example script currently available.... # -# uncomment this to deal with the new edit hook -#DEFAULT /home/ncvs/CVSROOT/new_edithook +#DEFAULT $CVSROOT/CVSROOT/edit "%s" # peter's edit post-processor.. -DEFAULT /home/ncvs/CVSROOT/cvsedit +DEFAULT $CVSROOT/CVSROOT/cvsedit diff --git a/CVSROOT/log_accum.pl b/CVSROOT/log_accum.pl index 07c5da3..9b43745 100755 --- a/CVSROOT/log_accum.pl +++ b/CVSROOT/log_accum.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# $Id: log_accum.pl,v 1.15 1995/11/27 08:28:42 peter Exp $ +# $Id$ # # Perl filter to handle the log messages from the checkin of files in # a directory. This script will group the lists of files by log @@ -55,6 +55,7 @@ $CVSROOT = "$ENV{'CVSROOT'}"; $AVAIL_FILE = "$CVSROOT/CVSROOT/avail"; $MAIL_FILE = "/tmp/#cvs.mail"; +$SUBJ_FILE = "/tmp/#cvs.subj"; $VERSION_FILE = "version"; $TRUNKREV_FILE = "TrunkRev"; #$CHANGES_FILE = "Changes"; @@ -88,9 +89,14 @@ sub cleanup_tmpfiles { opendir(DIR, "."); if ($all == 1) { push(@files, grep(/$id$/, readdir(DIR))); - push(@files, "$MAIL_FILE.$id.db") if (-e "$MAIL_FILE.$id.db"); + + push(@files, "$MAIL_FILE.$id.db") if (-e "$MAIL_FILE.$id.db"); push(@files, "$MAIL_FILE.$id.dir") if (-e "$MAIL_FILE.$id.dir"); push(@files, "$MAIL_FILE.$id.pag") if (-e "$MAIL_FILE.$id.pag"); + + push(@files, "$SUBJ_FILE.$id.db") if (-e "$SUBJ_FILE.$id.db"); + push(@files, "$SUBJ_FILE.$id.dir") if (-e "$SUBJ_FILE.$id.dir"); + push(@files, "$SUBJ_FILE.$id.pag") if (-e "$SUBJ_FILE.$id.pag"); } else { push(@files, grep(/^$FILE_PREFIX.*$id$/, readdir(DIR))); } @@ -287,21 +293,27 @@ sub do_changes_file { local($changes,$category); local(@text) = @_; - $category = $mlist; - $category =~ s/^cvs-//; - - $changes = "$CVSROOT/CVSROOT/commitlogs/$category"; + dbmopen(%MAILFILE, "$MAIL_FILE.$id", 0666); + + foreach $category (keys %MAILFILE) { + if ($category =~ /^cvs-/) { + $category =~ s,\n,,; + $category =~ s/^cvs-//; + $changes = "$CVSROOT/CVSROOT/commitlogs/$category"; - open(CHANGES, ">>$changes") || die("Cannot open $changes.\n"); - print(CHANGES join("\n", @text), "\n\n"); - close(CHANGES); + open(CHANGES, ">>$changes") || die("Cannot open $changes.\n"); + print(CHANGES join("\n", @text), "\n\n"); + close(CHANGES); + } + } + dbmclose(%MAILFILE); } sub do_avail_file { local($where) = @_; local($users,$repo,$who); - dbmopen(MAILFILE, "$MAIL_FILE.$id", 0666); + dbmopen(%MAILFILE, "$MAIL_FILE.$id", 0666); open(AVAIL, "<$AVAIL_FILE") || die("Cannot open $AVAIL_FILE.\n"); while(<AVAIL>) { if(/^avail\|([^|]*)\|(.*)$/) { @@ -319,7 +331,7 @@ sub do_avail_file { } } close(AVAIL); - dbmclose(MAILFILE); + dbmclose(%MAILFILE); } sub add_cc { @@ -333,25 +345,33 @@ sub add_cc { $who =~ s/^/"/; $who =~ s/$/"/; - dbmopen(MAILFILE, "$MAIL_FILE.$id", 0666); + dbmopen(%MAILFILE, "$MAIL_FILE.$id", 0666); $MAILFILE{$who} = 1; - dbmclose(MAILFILE); + dbmclose(%MAILFILE); } sub mail_notification { local(@text) = @_; local($names); - local($mailing_lists); - $committers = "CVS-committers"; + local($subject); + print "Mailing the commit message...\n"; - dbmopen(MAILFILE, "$MAIL_FILE.$id", 0666); - $mailing_lists = join(' ', $mlist, $committers); - $names = join(" ", keys %MAILFILE) . " $mailing_lists"; + + dbmopen(%MAILFILE, "$MAIL_FILE.$id", 0666); + $names = "CVS-committers " . join(" ", keys %MAILFILE); $names =~ s,\n,,; - dbmclose(MAILFILE); + dbmclose(%MAILFILE); - open(MAIL, "| mail -s \"cvs commit: $ARGV[0]\" $names"); + dbmopen(%SUBJFILE, "$SUBJ_FILE.$id", 0666); + $subject = join(" ", keys %SUBJFILE); + $subject =~ s,\n,,; + $subject =~ s,[ ]*, ,; + dbmclose(%SUBJFILE); + + #print "mail -s \"cvs commit: $subject\" $names\n"; + + open(MAIL, "| mail -s \"cvs commit: $subject\" $names"); print(MAIL join("\n", @text)); close(MAIL); } @@ -370,7 +390,7 @@ $state = $STATE_NONE; $login = $ENV{'USER'} || getlogin || (getpwuid($<))[0] || sprintf("uid#%d",$<); @files = split(' ', $ARGV[0]); @path = split('/', $files[0]); -$repository = @path[0]; +$repository = $path[0]; if ($#path == 0) { $dir = "."; } else { @@ -383,6 +403,13 @@ if ($#path == 0) { #print("id - ", $id, "\n"); $mlist = &mlist_map($files[0]); +dbmopen(%MAILFILE, "$MAIL_FILE.$id", 0666); +$MAILFILE{$mlist} = 1; +dbmclose(%MAILFILE); + +dbmopen(%SUBJFILE, "$SUBJ_FILE.$id", 0666); +$SUBJFILE{$ARGV[0]} = 1; +dbmclose(%SUBJFILE); # # Check for a new directory first. This will always appear as a @@ -400,9 +427,33 @@ if ($ARGV[0] =~ /New directory/) { exit 0; } +# Check for an import command. This will always appear as a +# single item in the argument list, and a log message. +# +if ($ARGV[0] =~ /Imported sources/) { + $version = &bump_version if ($cisco_systems != 0); + $header = &build_header($version); + + @text = (); + push(@text, $header); + push(@text, ""); + + push(@text, " ".$ARGV[0]); + &do_changes_file(@text); + + while (<STDIN>) { + chop; # Drop the newline + push(@text, " ".$_); + } + + &mail_notification(@text); + exit 0; +} + #no longer useful. the CC: line would be _too_ big. #&do_avail_file($dir); + # # Iterate over the body of the message collecting information. # @@ -428,11 +479,10 @@ while (<STDIN>) { /^Obtained from:$/i) { next; } -# Not accepted as generally useful yet. -# if (/^CC:/i) { -# &add_cc($_); -# # next; # uncomment this to prevent logging CC: lines -# } + if (/^CC:/i) { + &add_cc($_); + # next; # uncomment this to prevent logging CC: lines + } push (@log_lines, $_); } } diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo index adcaef6..2aadc50 100644 --- a/CVSROOT/loginfo +++ b/CVSROOT/loginfo @@ -1,24 +1,44 @@ # -# $FreeBSD$ +# $Id$ # # The "loginfo" file is used to control where "cvs commit" log information # is sent. The first entry on a line is a regular expression which is tested # against the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. +# $CVSROOT. For the first match that is found, then the remainder of the +# line is a filter program that should expect log information on its standard +# input. # -# The filter program may use one and only one % modifier (ala printf). If -# %s is specified in the filter program, a brief title is included (enclosed -# in single quotes) showing the modified file names. +# If the repository name does not match any of the regular expressions in the +# first field of this file, the "DEFAULT" line is used, if it is specified. # -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. +# If the name "ALL" appears as a regular expression it is always used +# in addition to the first matching regex or "DEFAULT". # -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. +# The filter program may use one and only one "%s" modifier (ala printf). If +# such a "%s" is specified in the filter program, a brief title is included +# (as one argument, enclosed in single quotes) showing the relative directory +# name and listing the modified file names. # -# NB: For FreeBSD 2.0, the following line is the ONLY one which should +# NOTE: contrib/log usage: (currently requires perl) +# -d - turn debugging on.... +# -m mailto - send mail to "mailto" (multiple -m's permitted) +# -f logfile - required arg: save messages to logfile +# %s - may follow other options at the end of the line +# +# NOTE: contrib/log_accum usage: (currently requires perl) +# (must have 'commit_prep -r' in commitinfo) +# -d - turn debugging on.... +# -M modulename - use this as the module name (necessary for sub-dirs) +# -m mailto - send mail to "mailto" (multiple -m's permitted) [optional] +# -f logfile - save messages to logfile [optional] +# %s - must follow other options at the end of the line +# +# without perl you could do this: +#DEFAULT (echo ""; who am i; date; cat) >> $CVSROOT/CVSROOT/commitlog +# +#DEFAULT $CVSROOT/CVSROOT/log -f $CVSROOT/CVSROOT/commitlog %s +# +# NB: For FreeBSD 2.X, the following line is the ONLY one which should # ever appear. If you want to do something extra to the log output, learn # Perl. -# -DEFAULT /usr/bin/perl $CVSROOT/CVSROOT/log_accum.pl %s +DEFAULT $CVSROOT/CVSROOT/log_accum.pl %s diff --git a/CVSROOT/mkavail b/CVSROOT/mkavail deleted file mode 100755 index fa21f74..0000000 --- a/CVSROOT/mkavail +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/perl -# -# Perl module to convert a CVS avail file into a majordomo alias file. -# - -$MAILING_LIST = 'cvs-committers'; -$AVAIL_FILE = 'avail'; - -open (MAIL, ">$MAILING_LIST"); -open (AVAIL, "<$AVAIL_FILE"); - - while (<AVAIL>) { - if (/^avail\|(.*)/) { - $master = $1; - foreach $who (split(/,/, $master)) { - print (MAIL "$who\n"); - } - } - } - -close MAIL; -close AVAIL; diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo index 1c02ed7..bb09fd5 100644 --- a/CVSROOT/rcsinfo +++ b/CVSROOT/rcsinfo @@ -1,19 +1,18 @@ # -# rcsinfo,v 1.3 1992/04/10 18:59:14 berliner Exp -# $FreeBSD$ +# $Id$ # # The "rcsinfo" file is used to control templates with which the editor # is invoked on commit and import. # # The first entry on a line is a regular expression which is tested # against the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is the -# name of the file that contains the template. +# $CVSROOT. For the first match that is found, then the remainder of the +# line is the name of the file that contains the template. # # If the repository name does not match any of the regular expressions in this # file, the "DEFAULT" line is used, if it is specified. # -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. +# If the name "ALL" appears as a regular expression it is always used +# in addition to the first matching regex or "DEFAULT". # -ALL /home/ncvs/CVSROOT/rcstemplate +ALL $CVSROOT/CVSROOT/rcstemplate diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo new file mode 100644 index 0000000..36af5bc --- /dev/null +++ b/CVSROOT/taginfo @@ -0,0 +1,25 @@ +# +# $Id$ +# +# The "taginfo" file is used to control pre-tag checks. +# The filter on the right is invoked with the following arguments: +# +# $1 -- tagname +# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d +# $3 -- repository +# $4-> file revision [file revision ...] +# +# A non-zero exit of the filter program will cause the tag to be aborted. +# +# The first entry on a line is a regular expression which is tested +# against the directory that the change is being committed to, relative +# to the $CVSROOT. For the first match that is found, then the remainder +# of the line is the name of the filter to run. +# +# If the repository name does not match any of the regular expressions in this +# file, the "DEFAULT" line is used, if it is specified. +# +# If the name "ALL" appears as a regular expression it is always used +# in addition to the first matching regex or "DEFAULT". +# +#DEFAULT $CVSROOT/CVSROOT/tag_logging_program diff --git a/CVSROOT/unwrap b/CVSROOT/unwrap new file mode 100755 index 0000000..d8335f5 --- /dev/null +++ b/CVSROOT/unwrap @@ -0,0 +1,21 @@ +#! /bin/sh +# +# unwrap - extract the combined package (created with wrap) +# +# $Id$ + +# move the file to a new name with an extension +rm -rf $1.cvswrap +mv $1 $1.cvswrap + +# untar the file + +if `gzip -t $1.cvswrap > /dev/null 2>&1` +then + zcat -d $1.cvswrap | tar --preserve --sparse -x -f - +else + tar --preserve -x -f $1.cvswrap +fi + +# remove the original +rm -rf $1.cvswrap diff --git a/CVSROOT/updateCVSROOT b/CVSROOT/updateCVSROOT deleted file mode 100755 index d8031b1..0000000 --- a/CVSROOT/updateCVSROOT +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# -# Called in place of mkmodules to take care of files mkmodules doesn't know. -# -# $Id: updateCVSROOT,v 1.7 1995/11/27 08:31:00 peter Exp $ - -PATH=$PATH:/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin -export PATH - -FILELIST="avail mkavail commitcheck cvs_acls.pl commit_prep.pl log_accum.pl" -FILELIST="${FILELIST} cvsedit edithook updateCVSROOT" - -cd $1 - -for i in $FILELIST -do - find $i,v -newer $i -exec echo Updating CVSROOT/$i \; -exec co -q -u $i \; -done - -find avail,v -newer cvs-committers -exec ./mkavail \; -cmp -s cvs-committers /home/mail/cvs-committers || { - echo "====== checking cvs-committers mailing list members ======" - echo "/home/mail/cvs-committers is different to \$CVSROOT/cvs-committers" - echo "please check to see what needs to be updated..." -} - -echo Executing: mkmodules $1 -exec mkmodules $1 diff --git a/CVSROOT/wrap b/CVSROOT/wrap new file mode 100755 index 0000000..7b44d9c --- /dev/null +++ b/CVSROOT/wrap @@ -0,0 +1,21 @@ +#! /bin/sh +# +# wrap - Combine a directory into a single tar package. +# +# $Id$ + +# This script is always called with the current directory set to +# where the file to be combined exists. but i may get called with a +# path to where cvs first started executing. (this probably should be +# fixed in cvs) so strip out all of the directory information. The +# first sed expression will only work if the path has a leading / +# if it doesn't the one in the if statement will work. +DIRNAME=`echo $1 | sed -e "s|/.*/||g"` +if [ ! -d $DIRNAME ] ; then + DIRNAME=`echo $1 | sed -e "s|.*/||g"` +fi +# +# Now tar up the directory but we now will only get a relative path +# even if the user did a cvs commit . at the top. +# +tar --preserve -cf - $DIRNAME | gzip --no-name --best -c > $2 |