info-cvs
[Top][All Lists]
Advanced

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

verifymsg script


From: FreudJ76
Subject: verifymsg script
Date: 11 Jan 2006 12:15:34 -0800
User-agent: G2/0.2

Hi, I was trying to come up with a vbscript that makes sure that a
comment is entered when something is committed. I started with CVS
documentation, but most samples were on Unix scripting. I am trying to
make this work under windows.

According to my limited observation, cvs is behaving differently on
windows. I don't think the documentation applies (and I very well might
be wrong) to the cases where cvsnt is reading verifymsg and triggering
a script. By the way, after reading little bit more, I learned that a
script called within loginfo can not actually stop the commit since
loginfo is called after commit takes place, so I switched to verifymsg.

Here is what I have observed using verifymsg on windows.
When a script is called within verifymsg, the only argument passed to
the script is the name of a temporary file which includes the text of
the commit message. I figured out this by echoing the arguments to a
text file that the script received. Is this a correct observation?

Having seen this, I have read the contents of this temp file into a
variable so that my variable has the commit message then I looked for
"no message" string in this variable.

This seemed to work to this point, some debugging lines I put into the
script showed that the script correctly determined whether the commit
message was empty or not, but I was never able to prevent commit. The
logic I used was that if the "no message" existed, the script should
quit with a non-zero exit code (Wscript.Quit (999)), but CVS allowed
the commit even if the execution reached the portion of the script
where Wscript.Quit command was executed with non-zero exit code. The
complete script is at the bottom of the email. Any help you can provide
will be appreciated. I am having a hard time finding
documentation\samples for cvs operations and scripting on windows so
even if you can direct me to a location where I can see some samples,
it would be a great help.

Here is the script
**************************************************************************

'Define the variables & constants

Const ForReading = 1, ForWriting = 2, ForAppending = 8

'Define the file system object

Set objFSO = CreateObject("Scripting.FileSystemObject")

'Parse the argument and assign the temp file which contains the commit
message to a string

Set objArgs = WScript.Arguments

strLogTxt = objArgs(0)

'Open the temp file and read the contents into a variable

Set f = objfso.GetFile(strLogTxt)

Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)

TextStreamTest = ts.ReadAll

'WScript.Echo TextStreamTest

'If the variable text has "no message" in it, exit with non-zero exit
code, if it is not, exit with zero exit code

MyPos = Instr(1, TextStreamTest, "no message", 1)

If MyPos <> 0 Then

                'WScript.Echo TextStreamTest
                WScript.Echo "The commit message is empty. Please enter a 
description
of the commit purpose"
                Wscript.Quit (999)

        Else

                'WScript.Echo TextStreamTest
                WScript.Echo "The commit message is not empty. Successful 
Commit"
                Wscript.Quit (0)
End If

ts.Close



reply via email to

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