[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Commitinfo Script Error Message

From: Mark D. Baushke
Subject: Re: Commitinfo Script Error Message
Date: Wed, 30 Aug 2006 02:03:25 -0700

Hash: SHA1

Aaron Bono <address@hidden> writes:

> I have written a script called which goes through a text
> file that contains a list of users and allows a commit if the user is in the
> file and denies the access if they are not.  Here is the script:
> -------------------------------------------------------
> #!/bin/sh
> listFile=$1
> list=`cat ${CVSROOT}/CVSROOT/${listFile}`
> for user in $list
> do
>     if [ "${CVS_USER}" = "${user}" ];
>     then
>         exit 0;
>     fi
> done
> echo "User ${CVS_USER} is not allowed to commit to this resource"

You probably want to write that message to stderr like this:

echo "User ${CVS_USER} is not allowed to commit to this resource" >&2

Hmmm... Is the repository is only ever used in client/server mode?
(and at that only in :pserver:, :gserver: or :kserver: modes).

To the best of my recollection...

If :local: mode is used, then CVS_USER will not be set.
If :ext: mode is used, then CVS_USER will not be set.

So, you may wish to have a check if the variable is set or not.

    if [ -z "$CVS_USER" ]; then
        echo Only :pserver: mode with a valid user is alloed to commit" >&2
        exit 1

In any case, you may find it useful to look at the contrib/cvs_acls.*
file that comes with your cvs 1.12.x source distribution.

        Good luck,
        -- Mark

> exit 1;
> -------------------------------------------------------
> The script works but if the user is denied, the message from the echo does
> not get sent back to the user.  Instead, the user gets the error:
> -------------------------------------------------------
> The server reported an error while performing the "cvs commit" command.
>   MyProject: cvs commit: warning: commitinfo line contains no format
> strings:
>   MyProject:     "/var/lib/cvs/myrepository/CVSROOT/
> admin-list.txt"
>   MyProject: Appending defaults (" %r/%p %s"), but please be aware that this
> usage is
>   MyProject: deprecated.
>   MyProject: cvs commit: Pre-commit check failed
>   MyProject: cvs [commit aborted]: correct above errors first!
> --------------------------------------------------------
> This error is not very informative to the user.  Is there a way have the
> script generate a message that CVS sends back to the user?
> Thanks!
> ==================================================================
>    Aaron Bono
>    Aranya Software Technologies, Inc.
> ==================================================================
> _______________________________________________
> info-cvs mailing list
> address@hidden
Version: GnuPG v1.4.4 (FreeBSD)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]