diff options
author | joe <joe@FreeBSD.org> | 2001-08-31 07:17:32 +0800 |
---|---|---|
committer | joe <joe@FreeBSD.org> | 2001-08-31 07:17:32 +0800 |
commit | e1b00a2ef4937da7c9c5102441e4f70c996ba1ff (patch) | |
tree | f4db2be8d7086c98e5454c1f80768c1b71f398ca /CVSROOT | |
parent | 4b99646ba9fcf99b989e27c3f4f95b8e1026b68a (diff) | |
download | freebsd-ports-gnome-e1b00a2ef4937da7c9c5102441e4f70c996ba1ff.tar.gz freebsd-ports-gnome-e1b00a2ef4937da7c9c5102441e4f70c996ba1ff.tar.zst freebsd-ports-gnome-e1b00a2ef4937da7c9c5102441e4f70c996ba1ff.zip |
This is the captain speaking. Fasten your seat belts and relax; we don't
envisage any turbulence but just in case....
Convert this script from shell to perl.
Diffstat (limited to 'CVSROOT')
-rwxr-xr-x | CVSROOT/commitcheck | 86 |
1 files changed, 49 insertions, 37 deletions
diff --git a/CVSROOT/commitcheck b/CVSROOT/commitcheck index 5f531e55ca8c..00458dc8ccce 100755 --- a/CVSROOT/commitcheck +++ b/CVSROOT/commitcheck @@ -1,4 +1,4 @@ -#! /bin/sh +#!/usr/bin/perl -w # # $FreeBSD$ @@ -8,55 +8,67 @@ # in the log_accum script. Otherwise your commit messages will be sent # to 'cvs-committers@freebsd.org' etc. This could be highly embarrassing. :-) # -case "`hostname | tr A-Z a-z`" in -freefall.freebsd.org|internat.freebsd.org) - # Sanity check to make sure we've been run through the wrapper and are - # now primary group 'ncvs'. - # - GRP=`/usr/bin/id -gn` - if [ "x$GRP" != "xncvs" ]; then - echo "You do not have group ncvs!" - exit 1 - fi - ;; -*) - echo "Please commit on Freefall\!" - echo "(and Internat for crypto.)" - exit 1 -esac + +use strict; + +my $CVSROOT = $ENV{CVSROOT} || die "Can't determine CVSROOT (commitcheck)!\n"; + +my $MINCVSVERSION = "1090900"; # 1.9.9p0 + +# Check that the user is committing on the right machine. +# +use Sys::Hostname; # get hostname() function +my $hostname = hostname(); +if ($hostname !~ /^freefall.freebsd.org$/ && + $hostname !~ /^internat.freebsd.org$/) { + print "Please commit on Freefall!\n"; + print "(or Internat for crypto.)\n"; + exit 1; +} + +# Sanity check to make sure we've been run through the wrapper and are +# now primary group 'ncvs'. +# +my $GRP=`/usr/bin/id -gn`; +chomp $GRP; +unless ( $GRP =~ /^ncvs$/ ) { + print "You do not have group ncvs (commitcheck)!\n"; + exit 1; +} # # Ensure the minimum version of cvs is installed. # -VERS=`/usr/bin/cvs -v | awk '$1 == "Concurrent" { print $5 }' | awk -F. '{printf "%d%02d%02d\n",$1,$2,$3}'` -if [ "x${VERS}" = "x" -o ${VERS} -lt 10909 ]; then - echo "The wrong version of CVS is installed!" 1>&2 - exit 1 -fi +my $VERSTR = `/usr/bin/cvs -v`; +$VERSTR =~ s/.*Concurrent\D*(\S*).*/$1/s; +$VERSTR =~ s/\D+/./g; +my $VERSION = sprintf "%d%02d%02d%02d\n", split /\./, $VERSTR; +unless ( $VERSION && $VERSION >= $MINCVSVERSION ) { + print "The wrong version of CVS is installed (commitcheck)!\n"; + exit 1; +} # # Does the access control list allow them commit access? # -if $CVSROOT/CVSROOT/cvs_acls.pl ${1+"$@"} -then - : # OK -else - echo "Access control checks failed! (cvs_acls.pl)" 1>&2 - exit 1 -fi +system("$CVSROOT/CVSROOT/cvs_acls.pl", @ARGV); +if ($? >> 8) { + print "Access control checks failed! (cvs_acls.pl)\n"; + exit 1; +} # # Last minute checks and preparations for log_accum.pl later. This # records the last directory in this commit so that log_accum knows when # to finish coalescing commit messages and mail it. # -if $CVSROOT/CVSROOT/commit_prep.pl ${1+"$@"} -then - : # OK -else - echo "commit_prep.pl failed!" 1>&2 - exit 1 -fi +system("$CVSROOT/CVSROOT/commit_prep.pl", @ARGV); +if ($? >> 8) { + print "commit_prep.pl failed!\n"; + exit 1; +} + +exit 0; # Lets do it! -exit 0 # Lets do it! +#end |