Introduction
GlobalsDoc specifies configuration settings for DevGuy's tools.
The name of the GlobalsDoc file is globals.xml. It is used by PCTK, CvsNotify, CvsWebSync, FileTools, Packager, and IrcBot.
An example file appears at the end of this document. It is also installed via the setup programs and tar files to pm/cfgmgmt/globals.xml
Location
The path of this file is specified in the devguy_globals environment variable. On Windows, the location can optionally be stored in the registry.
On non-Windows platforms, this environment variable must exist for every user that runs DevGuy-related programs that use globals.xml. Unfortunately, this can be tricky. Many UNIX administrators know how to do this via shared shell .rc scripts. If you're not familiar with this technique, you can either try to Google for it or check out the following links as "hints."
See http://www.csis.gvsu.edu/GeneralInfo/eosLabs/environment.php as a hint for setting an environment variable when the shell starts
See http://www.rsinc.com/services/techtip.asp?ttid=1673 as a hint for setting an environment variable when the computer boots
Every user has a shell defined in passwd. Shell programs have a way to run a script at start-up time via .rc files. Unfortunately, every shell (csh, bash, sh, ksh, etc.) is different. Either point users to the same .rc file or have each user's .rc file include a common script.
On Windows, if this environment variable doesn't exist, the location is specified in the registry at
HKLM\Software\DevGuy\PCTK\Globals {string}
which is created by the ProgrammersCanvasToolkit, FileTools, CvsNotify, CvsWebSync, and IrcBot installation programs.
If the registry setting and environment variable are missing, the path defaults to the current directory, followed by c:\program files\perl\lib\cfgmgmt, and finally d:\program files\perl\lib\cfgmgmt.
Run dgversion, dgfiletoolsversion, dgcvsnotifyversion, dgirclogversion, or dgcvswebsyncversion to view the resolved location of the globals file. There are .pl and .exe variations of these programs.
Tip
Unfortunately, all of the PCTK related setup programs write their own globals.xml file to their installation directories and point the same registry setting (see above) to it regardless of whether the registry setting already exists (I don't know how to get vanilla MSI to check first -- DevGuy).
If you put globals.xml in its own folder (e.g., c:\program files\devguy) and point the devguy_globals environment variable to it, you won't have upgrade headaches later.
XML File
<!-- See http://devguy.com/moin.cgi/GlobalsDoc -->
<GlobalsDoc>
<!-- Specify the location of a temp directory to use (optional, defaults to TEMP environment variable) -->
<!--
Specify 1 for UsePerl to use the DevGuy perl scripts rather than the executable files.
Can be overridden with the DEVGUY_USEPERL env variable.
-->
<!--
Specify the name of an executable to do CVS diffs (optional). This is used by the script "dgdiff" which probably isn't used by anyone anymore.
-->
<DiffProg>windiff.exe</DiffProg>
<!--
Repository
Specify the name of the CVS repository (optional)
-->
<Repository></Repository>
<!--
CVSNotifyXML
Specify the path of the CvsNotifyDoc file, which used by the loginfo (CVS commit) scripts (optional)
See http://devguy.com/cvsnotify
LogInfoXML and CvsNotifyXML are aliases.
-->
<CVSNotifyXML></CVSNotifyXML>
<!--
CVSNotifyPath
Specify the directory to use when writing "CVS loginfo/taginfo" output
Defaults to the TEMP environment variable
-->
<CVSNotifyPath>c:/dgcvsnotify</CVSNotifyPath>
<!--
Specify the inactivity timeout for CvsNotify operations. Defaults to five minutes. This is for taginfo and loginfo.
-->
<NotifyWaitSeconds></NotifyWaitSeconds>
<!--
Specify the inactivity timeout for CvsNotify "watch" (notify) operations. Defaults to 0 (immediate notification). Added in version 1.9.0.18.
-->
<WatchWaitSeconds></WatchWaitSeconds>
<!--
Default subject line for CVS watch notification emails (optional)
-->
<NotifySubject></NotifySubject>
<!--
Domain
Specify your email domain. It is used to create email addresses when a domain isn't provided.
-->
<Domain>yourdomain.com</Domain>
<!--
SMTP Settings
Specify your SMTP server (optional). Set SMTPDebug to send extra debugging output to STDOUT.
SMTPUser and SMTPPassword are optional. They are for logging into the SMTP server.
Use dgtestsmtp.pl / .ext to test these settings.
-->
<SMTPServer></SMTPServer>
<SMTPServerPort></SMTPServerPort>
<SMTPDebug></SMTPDebug>
<SMTPUser></SMTPUser>
<SMTPPassword></SMTPPassword>
<!--
CVSEmailGroup
Specify the default email addreses to send CVS commit emails to, as a comma-separated list (optional)
See http://devguy.com/cvsnotify
-->
<CVSEmailGroup></CVSEmailGroup>
<!--
MaxEmailBodySize (optional)
Specify the maximum size for email bodies (optional) Defaults to 1000000 (1 million)
See http://devguy.com/cvsnotify
-->
<MaxEmailBodySize></MaxEmailBodySize>
<!--
CVSWebURL
Specify the entry URL to your CVSWeb or ViewCVS server. This can be overridden in the CvsNotifyDoc file. Must end with a trailing slash! (optional)
See http://devguy.com/cvsnotify
-->
<CVSWebURL></CVSWebURL>
<!--
CVSWebURLQuery
Contains the query portion of the ViewCVS or CVSWeb URL, e.g., root=foo.
see http://devguy.com/cvsnotify
-->
<CVSWebURLQuery></CVSWebURLQuery>
<!--
NNTP Settings
Specify your news server (optional) This is for CvsNotify and the BuildRobot.
This can be overridden in the CvsNotifyDoc and BuildOptionsDoc files.
See http://devguy.com/cvsnotify
Setting NNTPDebug to 1 will send some verbose debugging text to STDOUT.
-->
<NNTPServer></NNTPServer>
<NNTPServerPort></NNTPServerPort>
<NNTPDebug></NNTPDebug>
<!--
MaxNewsgroupPostSize (optional)
Specify the maximum number of bytes to send to a newsgroup. (defaults to 100000)
See http://devguy.com/cvsnotify
-->
<MaxNewsgroupPostSize></MaxNewsgroupPostSize>
<!--
Specify the newsgroup for Builds (optional) This may consist of a list of newsgroup names depending on the NNTP server. Defaults to engineering.builds
See http://devguy.com/buildrobot
-->
<BuildNewsgroup></BuildNewsgroup>
<!--
Default subject line for CVS loginfo (optional)
-->
<LogInfoSubject></LogInfoSubject>
<!--
Specify the newsgroup for CVS commits (optional) This can be overridden in the CvsNotifyDoc file. This may consist of a list of newsgroup names depending on the NNTP server.
-->
<LogInfoNewsgroup></LogInfoNewsgroup>
<!--
Default subject line for CVS taginfo (optional)
-->
<TagInfoSubject></TagInfoSubject>
<!--
Specify the email address or addresses (comma-separated) to send "taginfo" notifications to
-->
<TagInfoEmailGroup></TagInfoEmailGroup>
<!--
NNTP Settings for TagInfo
Specify the newsfor CVS log operations (optional) This can be overridden in the CvsNotifyDoc file. NNTPServer is used if this is not specified.
-->
<TagInfoNNTPServer></TagInfoNNTPServer>
<TagInfoNNTPServerPort></TagInfoNNTPServerPort>
<!--
Specify the newsgroup for CVS log operations (optional) This can be overridden in the CvsNotifyDoc file. This may consist of a list of newsgroup names depending on the NNTP server.
-->
<TagInfoNewsgroup></TagInfoNewsgroup>
<!--
IRCBotName (optional)
Specify the name of an IRC bot (used by CVS notification). This can be overridden in the CvsNotifyDoc file. Defaults to CvsNotify. This value is truncated to IRCMaxNameLength characters.
See http://devguy.com/cvsnotify
-->
<IRCBotName></IRCBotName>
<!--
IRCUsername (optional)
Used by CVS notification. The user name to use when logging into IRC server. Defaults to IRCBotName value.
-->
<IRCUsername></IRCUsername>
<!--
IRCPassword (optional)
Used by CVS notification. The password to use when logging into IRC server.
-->
<IRCPassword></IRCPassword>
<!--
IRCMaxNameLength (optional)
Maximum user name length for IRC
Defaults to 8. This leaves an extra character to append a number when the nick is in use.
-->
<IRCMaxNameLength></IRCMaxNameLength>
<!--
IRCBotPrelude (optional)
Used for CVS notification. Specify the text to output before an IRC bot "talks" This can be overridden in the CvsNotifyDoc file.
-->
<IRCBotPrelude></IRCBotPrelude>
<!--
IRCServer (optional)
Used for CVS notification. This can be overridden in the CvsNotifyDoc file.
See http://devguy.com/cvsnotify
-->
<IRCServer></IRCServer>
<!--
IRCPort (optional)
Used for CVS notification. Specify the port number to use to connect to the IRC server. This can be overridden in the CvsNotifyDoc file.
-->
<IRCPort></IRCPort>
<!--
IRCChannel (optional)
Used for CVS notification. Specify the name of the chat room to enter This can be overridden in the CvsNotifyDoc file.
-->
<IRCChannel></IRCChannel>
<!--
IRCMaxMessageSize (optional)
Specify the maximum number of bytes to send at one time to IRC (defaults to 100000)
-->
<IRCMaxMessageSize></IRCMaxMessageSize>
<!--
IRCMaxLineLength
"chop" lines sent to IRC at this number of characters (defaults to 255)
-->
<IRCMaxLineLength></IRCMaxLineLength>
<!--
IRCFloodSeconds (optional) IRCFloodMessages (optional)
If IRCFloodMessages (or more) messages are sent to the same IRC server and channel within this number of seconds (e.g., 500 messages in 5 seconds), the client or server may consider the IRC bot to be "flooding" the channel with an excessive number of messages.
The IRC bot will therefore honor these settings to wait between sending messages so that it is not considered to be flooding the channel.
If either value is 0, the flood protection is disabled.
Both can be overridden in the CvsNotifyDoc.
-->
<IRCFloodSeconds></IRCFloodSeconds>
<IRCFloodMessages></IRCFloodMessages>
<!--
IRCPingTimeoutSeconds (optional)
If this number of seconds passes without receiving a message from the IRC server (ping, privmsg, etc.), a message is sent to the IRC server to see if the connection is still alive.
Defaults to 60. A small number can cause the IRC administrator to ban you.
-->
<IRCPingTimeoutSeconds></IRCPingTimeoutSeconds>
<!--
Specify the number of times to attempt to lock a file in the CvsNotify scripts (defaults to 50). Each number corresponds to roughly one second. 50 waits 50 seconds for the file to become lockable.
-->
<FileLockAttempts></FileLockAttempts>
<!--
These font styles are used by CvsNotify
-->
<Background>#ffffff</Background>
<General>#000000</General>
<Date>size=-1 face="Courier New,Courier" color="#ff00ff"</Date>
<DayOfWeek>size=-1 face="Courier New,Courier" color="#804040"</DayOfWeek>
<Time>size=-1 face="Courier New,Courier" color="#ff00ff"</Time>
<UserName>size=-1 face="Courier New,Courier" color="#804040"</UserName>
<ModulePath>size=-1 face="Courier New,Courier" color="#804040"</ModulePath>
<Branch>size=-1 face="Courier New,Courier" color="#000000"</Branch>
<Star>face="Courier New,Courier" color="#2e8b57"</Star>
<!--
These day-of-the-week names are used by CvsNotify
-->
</GlobalsDoc>>
