aboutsummaryrefslogtreecommitdiffstats
path: root/CVSROOT/commitcheck
blob: 2168d1f08a2942c4147e1eb5c404cca9863a8490 (plain) (blame)
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
61
62
63
64
65
66
67
68
#! /bin/sh
#
# $FreeBSD$

#
# BEWARE:  If you are "borrowing" this code for use on another cvs
# repository, please make sure you change all references to '@FreeBSD.org'
# in the log_accum script.  Otherwise your commit messages will be sent
# to 'cvs-committers@freebsd.org' etc.  This could be highly embarresing. :-)
#
case "`hostname | tr A-Z a-z`" in
freefall.freebsd.org)
    :
    ;;
internat.freebsd.org)
    :
    ;;
*)
    echo "Please commit on Freefall\!"
    echo "(and Internat for crypto.)"
    exit 1
esac

#
# 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

#
# 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


#
# 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

#
# Last minute checks and preperations 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

exit 0      # Lets do it!