зеркало из https://github.com/mozilla/pjs.git
Patch by Pontus Lidman <pontus@mathcore.com> -- now uses autoconf,
works with tcl 8.x, more configuration stuff, etc.
This commit is contained in:
Родитель
c59c9c6855
Коммит
1dc1ad1d3c
|
@ -11,6 +11,6 @@ will tell you what has been changed in the last week.
|
|||
|
||||
|
||||
|
||||
4/9/99 Now uses DBI::mysql instead of the mysql perl module that came with
|
||||
mysql. One side effect of htis is that it now tries to log in as user
|
||||
"bonsai"; I'm actually not sure what username it was trying before.
|
||||
4/30/99 Now uses autoconf, and comes with a configure script. A few
|
||||
new variables can be defined in your configdata file, and probably
|
||||
need to be. See the file configdata.in for a list of the new parameters.
|
||||
|
|
|
@ -33,7 +33,7 @@ tree control (Bonsai - http://www.mozilla.org/bonsai.html).
|
|||
While LXR formatting is not as pretty as LSN's one, it has a huge
|
||||
advantage - it lets you see where the identifier is defined and used.
|
||||
And Bonsai brings nice and easy (though sometimes incompatible with
|
||||
browsers other but Netscape's own) intarface to the CVS history. This
|
||||
browsers other but Netscape's own) interface to the CVS history. This
|
||||
includes getting list of changes, giffs between revisions, etc.
|
||||
|
||||
All in all LXR+Bonsai+other stuff beneath is a useful tool capable
|
||||
|
@ -68,6 +68,10 @@ The short list of the things you will need:
|
|||
6) Date::Parse module for Perl
|
||||
7) Some kind of HTTP server so you could use CGI scripts
|
||||
|
||||
You could try running the ./configure script to see what tools it
|
||||
complains about right now. Mind you, it won't check for the MySQL
|
||||
database.
|
||||
|
||||
1.1 Getting and setting up MySQL database
|
||||
|
||||
Visit MySQL homepage at http://www.tcx.se and grab the latest
|
||||
|
@ -82,19 +86,21 @@ writable by all users on your machine and change access level
|
|||
later. This would save you a lot of time trying to guess whether it's
|
||||
permissions or a mistake in the script that make things fail.
|
||||
|
||||
1.2-3 Getting and building Tcl & TclX 7.6
|
||||
1.2-3 Getting and building Tcl & TclX 8.0.4
|
||||
|
||||
Tcl homepage is at http://www.scriptics.com. You may get sources
|
||||
for UNIX from ftp://ftp.scriptics.com/pub/tcl/tcl7_6/tcl7.6p2.tar.gz.
|
||||
Bonsai works with Tcl & TclX 7.6 too, but if you need to build,
|
||||
you might as well get the latest stable versions.
|
||||
Tcl homepage is at http://www.scriptics.com. You may get sources
|
||||
for UNIX from ftp://ftp.scriptics.com/pub/tcl/tcl8_0/tcl8.0.4.tar.gz.
|
||||
TclX is an extension for Tcl that adds a lot of useful functions that
|
||||
are heavily used in Bonsai tool.
|
||||
TclX page is http://www.neosoft.com/tclx. Download sources from
|
||||
ftp://ftp.neosoft.com/pub/tcl/TclX/tclX7.6.0.tar.gz. Watch out for the
|
||||
ftp://ftp.neosoft.com/pub/tcl/TclX/tclX8.0.4.tar.gz. Watch out for the
|
||||
case of the letters in URL. These guys are going to bring some fun
|
||||
into your life by spelling their program name in various ways.
|
||||
|
||||
Now you've probably got both Tcl and TclX 7.6. You may try to use
|
||||
version 8.X but I'm not sure about results. Unfortunately I'm not an
|
||||
Now you've probably got both Tcl and TclX 8.0.4. You may try to use
|
||||
later versions but I'm not sure about results. Unfortunately I'm not an
|
||||
expert in "Tcl&Co.".
|
||||
|
||||
Build and install Tcl first. Then build and install TclX. This
|
||||
|
@ -102,20 +108,13 @@ should go without serious problems
|
|||
|
||||
1.4 mysqltcl - the tricky part
|
||||
|
||||
Grab msqltcl 1.50 (yes, "msqltcl" without 'y'. That's not a typo) from
|
||||
MySQL site's contributed software area (http://www.tcx.se/Contrib/) or
|
||||
from mSQL site (www.hughes.com.au). I've used version 1.50 and it
|
||||
works for me, though you may try more recent version at your own
|
||||
risk. You're risking anyway.
|
||||
Grab mysqltcl 1.53 from MySQL site's contributed software area
|
||||
(http://www.tcx.se/Contrib/) I've used version 1.53 and it works for
|
||||
me, though you may try more recent version at your own risk. You're
|
||||
risking anyway.
|
||||
|
||||
Then grab mysqltcl.c-patch from MySQL's contrib area and apply this
|
||||
patch to msqltcl.c file from msqltcl-1.50 distribution.
|
||||
|
||||
Try to make msqltcl binary which is in fact mYsqltcl already. Very
|
||||
likely that you will not be able to compile it without modifications.
|
||||
|
||||
You can use the patch in APPENDIX 1 to see what changes I had to make
|
||||
to compile mysqltcl. Your mileage may vary.
|
||||
You will need to patch mysqltcl to include support for TclX. A
|
||||
patch is provided in Appendix A.
|
||||
|
||||
1.5 Perl + Mysql
|
||||
|
||||
|
@ -161,13 +160,7 @@ id you're running the daemon with.
|
|||
2. TWEAKING THE TOOLS
|
||||
|
||||
Now you should have all necessary tools to be able to run LXR and
|
||||
Bonsai scripts and see why the wouldn't work for you right now.
|
||||
|
||||
First of all you have to change "#!/usr/bonsaitools" to wherever
|
||||
you've installed your binaries in all executable scripts in LXR and
|
||||
Bonsai directories. There is now a Makefile with a "make install"
|
||||
command that can make this easier. See the Makefile for details.
|
||||
|
||||
Bonsai scripts and see why the wouldn't work for you right now.
|
||||
|
||||
2.1 LXR
|
||||
|
||||
|
@ -217,24 +210,34 @@ Here is the short list of changes I had to make
|
|||
setup. You have to make a lot of changes until more portable
|
||||
configuration mechanism is introduced.
|
||||
|
||||
First of all, create data/ directory in your Bonsai dir. Then edit
|
||||
data/configdata file as described in README file. Create
|
||||
appropriate data/XXX directory for each tree XXX you've configured in
|
||||
'configdata'. Compile trapdoor program and place binary in the data/
|
||||
dir ('make install' will do this for you.).
|
||||
run 'trapdoor <admin password here> >data/passwd' it will set up
|
||||
admin's password. At least it should. It worked for me with empty
|
||||
password, but I still am unable to change it from the web.
|
||||
These steps should create a basic Bonsai install:
|
||||
|
||||
./configure
|
||||
make install
|
||||
|
||||
You might want to give the option --prefix=<path> to configure to
|
||||
install Bonsai in another place than /usr/local, e.g. /var/www. It
|
||||
will make a new directory named "bonsai" in the prefix directory you specify.
|
||||
|
||||
Edit data/configdata file as described in README file. Create
|
||||
appropriate data/XXX directory for each tree XXX you've configured
|
||||
in 'configdata'.
|
||||
|
||||
Go to the data directory and run
|
||||
|
||||
trapdoor <admin password here> >data/passwd
|
||||
|
||||
it will set up admin's password.
|
||||
|
||||
file: cvsblame.cgi
|
||||
@line 120: you may add your own translation to help find
|
||||
@line 202: you may add your own translation to help find
|
||||
appropriate RCS file for the given source file.
|
||||
TODO: We'd better get this information from CVS/Repository
|
||||
file. It's more generic than hardcoded tweaks.
|
||||
|
||||
file: cvslog.cgi
|
||||
@line 90: the same tweaks to find RCS file for given source file
|
||||
@ line 463: add translations to $lxr_path to help find source
|
||||
@line 154: the same tweaks to find RCS file for given source file
|
||||
@ line 475: add translations to $lxr_path to help find source
|
||||
file for given RCS file.
|
||||
TODO: This should be done using information in
|
||||
$CVSROOT/CVSROOT/modules file. Typical example is the
|
||||
|
@ -245,25 +248,10 @@ password, but I still am unable to change it from the web.
|
|||
|
||||
|
||||
file: cvsquery.cgi
|
||||
@line 23: There are some cases when cvsrot is not passed as
|
||||
@line 25: There are some cases when cvsroot is not passed as
|
||||
parameter for cvsquery.cgi. You should better check for
|
||||
empty CVS_ROOT and set it to your CVSROOT path.
|
||||
|
||||
@line 71: Here we should try to make backward translation for
|
||||
directory name similar to one @line 463 in cvslog.cgi.
|
||||
|
||||
|
||||
@line 151: you will probably want to send email somewhere else
|
||||
but people @netscape.com 8-)
|
||||
|
||||
|
||||
file: dolog.pl
|
||||
@line 42: change path to rlog program
|
||||
|
||||
file: toplevel.cgi
|
||||
@line 240: remove links that are not accessible to you anyway
|
||||
|
||||
|
||||
That's basically it. With some luck and persistence you will have 90%
|
||||
working system at this point. A lot of these things are just asking to be
|
||||
fixed in near feature. And I hope they will be.
|
||||
|
@ -271,7 +259,9 @@ fixed in near feature. And I hope they will be.
|
|||
3. Setting up database
|
||||
|
||||
This is quite simple but time consuming operation.
|
||||
First create database structure using maketable.sh csript.
|
||||
First create database structure using maketable.sh script. You might
|
||||
want to edit it to use the user and password you want for the bonsai
|
||||
database.
|
||||
Then go to Bonsai administration page and press "Rebuild CVS history"
|
||||
button. Then you may go to the theater and watch a movie or two. It
|
||||
will talke a lot of time. It takes several seconds to process one
|
||||
|
@ -279,8 +269,22 @@ file. The more revisions in file the more time it will take. My SUN
|
|||
workstation with 2x200Mhz UltraSPARC processors run about an hour to
|
||||
process about 4K files with 20K+ revisions. Your mileage may vary.
|
||||
|
||||
Read the comments at the top of dolog.pl to see how to keep your
|
||||
database updated when people make checkins.
|
||||
Copy "dolog.pl" to your CVSROOT directory, and check it in. Add
|
||||
"dolog.pl" to CVSROOT/checkoutlist, and check it in. Then, add a line
|
||||
to your CVSROOT/loginfo file that says something like:
|
||||
|
||||
ALL $CVSROOT/CVSROOT/dolog.pl -r /cvsroot bonsai-checkin-daemon@my.bonsai.machine
|
||||
|
||||
Replace "/cvsroot" with the name of the CVS root directory, and
|
||||
"my.bonsai.machine" with the name of the machine Bonsai runs on. Now,
|
||||
on my.bonsai.machine, add a mail alias so that mail sent to
|
||||
"bonsai-checkin-daemon" will get piped to handleCheckinMail.tcl. The
|
||||
first argument to handleCheckinMail.tcl is the directory that bonsai
|
||||
is installed in. E.g. in /etc/aliases, add
|
||||
|
||||
bonsai-checkin-daemon: "|/usr/local/bonsai/handleCheckinMail.tcl /usr/local/bonsai"
|
||||
|
||||
or whatever is appropriate for your mail transport agent.
|
||||
|
||||
4. Things to do
|
||||
|
||||
|
@ -315,116 +319,79 @@ time trying. Or just reading.
|
|||
APPENDIXES
|
||||
*******************************************************
|
||||
|
||||
APPENDIX 1. Patch to build mysqltcl with TclX
|
||||
---------------------------------------------
|
||||
|
||||
APPENDIX 1. Patch to build mysqltcl.
|
||||
--------------------------------------
|
||||
|
||||
diff -u -r msqltcl-1.50/Makefile mysqltcl-1.50/Makefile
|
||||
--- msqltcl-1.50/Makefile Tue Jun 6 07:25:39 1995
|
||||
+++ mysqltcl-1.50/Makefile Tue Jun 23 18:20:07 1998
|
||||
@@ -38,11 +38,11 @@
|
||||
#
|
||||
#----- Tcl/Tk libraries & such
|
||||
# Path for Tcl include files.
|
||||
-TCLINCL = -I/usr/local/include
|
||||
+TCLINCL = -I../include
|
||||
# Path for Tk include files, if different from the above.
|
||||
TKINCL =
|
||||
# Libraries required to link plain Tcl.
|
||||
-TCLLIBS = -L/usr/local/lib -ltcl -lm
|
||||
+TCLLIBS = -L../lib -ltclx7.6.0 -ltcl7.6 -lm -lnsl -lsocket
|
||||
# Libraries required to link plain Tk.
|
||||
TKLIBS = -L/usr/local/lib -ltk -ltcl -lX11 -lm
|
||||
diff -u -r mysqltcl-1.53/Makefile mysqltcl-1.53p/Makefile
|
||||
--- mysqltcl-1.53/Makefile Mon Jul 6 18:11:55 1998
|
||||
+++ mysqltcl-1.53p/Makefile Wed Apr 28 09:48:55 1999
|
||||
@@ -10,7 +10,7 @@
|
||||
TKHOME = /usr
|
||||
MYSQLHOME = /usr/local/mysql
|
||||
|
||||
@@ -66,11 +66,11 @@
|
||||
#
|
||||
#----- Tcl/Tk libraries & such
|
||||
# Path for Tcl include files.
|
||||
-NEWTCLINCL = -I/usr/local/new/include
|
||||
+NEWTCLINCL = -I../include
|
||||
# Path for Tk include files, if different from the above.
|
||||
NEWTKINCL =
|
||||
# Libraries required to link plain Tcl.
|
||||
-NEWTCLLIBS = -L/usr/local/new/lib -ltcl -lm
|
||||
+NEWTCLLIBS = -L../lib -ltclx7.6.0 -ltcl7.6 -lm -lnsl -lsocket
|
||||
# Libraries required to link plain Tk.
|
||||
NEWTKLIBS = -L/usr/local/new/lib -ltk -ltcl -lX11 -lm
|
||||
-SHARED = yes
|
||||
+SHARED = no
|
||||
#PLATFORM=SunOS-5.5.1-sparc
|
||||
#PLATFORM=SunOS-5.6-sparc
|
||||
PLATFORM=Linux-2.0-i586
|
||||
@@ -59,7 +59,7 @@
|
||||
CPPFLAGS = -I$(XHOME)/include -I$(TCLHOME)/include -I$(TKHOME)/include \
|
||||
-I$(MYSQLHOME)/include
|
||||
LOADLIBES = -L$(XHOME)/lib -L$(TCLHOME)/lib -L$(TKHOME)/lib \
|
||||
- -L$(MYSQLHOME)/lib -lmysqlclient -ltk8.0 -ltcl8.0 -lX11 -lm -ldl $(LIBS)
|
||||
+ -L$(MYSQLHOME)/lib -lmysqlclient -ltclx8.0.4 -ltk8.0 -ltcl8.0 -lX11 -lm -ldl $(LIBS)
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
# Path for TclX/TkX include files, if different from plain Tcl.
|
||||
NEWTCLXINCL =
|
||||
# Extra libraries required to link TclX.
|
||||
-NEWTCLXLIBS = -L/usr/local/new/lib -ltclx
|
||||
+NEWTCLXLIBS = -L../mysql/lib -ltclx
|
||||
# Extra libraries required to link TkX.
|
||||
NEWTKXLIBS = -L/usr/local/new/lib -ltkx -ltclx
|
||||
# TclX/TkX 'AppInit' files (base names).
|
||||
@@ -94,16 +94,16 @@
|
||||
#
|
||||
#----- mSQL libraries & such
|
||||
# Path for mSQL include files.
|
||||
-MSQLINCL = -I/usr/local2/src/Minerva/include
|
||||
+MSQLINCL = -I../mysql/include
|
||||
# Libraries required to link an mSQL application.
|
||||
-MSQLLIB = -L/usr/local2/src/Minerva/lib -lmsql
|
||||
+MSQLLIB = -L../mysql/lib -lmysqlclient
|
||||
all: $(OUTPUT)
|
||||
|
||||
#===== END OF CONFIGURATION DEFINITIONS =====
|
||||
diff -u -r mysqltcl-1.53/mysqltcl.c mysqltcl-1.53p/mysqltcl.c
|
||||
--- mysqltcl-1.53/mysqltcl.c Mon Jul 6 17:35:17 1998
|
||||
+++ mysqltcl-1.53p/mysqltcl.c Mon Apr 26 11:21:10 1999
|
||||
@@ -27,7 +27,7 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
INCL = -I. ${MSQLINCL} ${TCLINCL} ${TKINCL}
|
||||
CFLAGS = ${OPTIM} -c
|
||||
LDFLAGS = ${OPTIM}
|
||||
-PROGS = msqltcl msqlwish
|
||||
+PROGS = msqltcl # msqlwish
|
||||
TCLLINK = ${MSQLLIB} ${TCLLIBS}
|
||||
TKLINK = ${MSQLLIB} ${TKLIBS}
|
||||
-#include <tcl.h>
|
||||
+#include <tclExtend.h>
|
||||
#include <mysql.h>
|
||||
|
||||
diff -u -r msqltcl-1.50/new-tclAppInit.c mysqltcl-1.50/new-tclAppInit.c
|
||||
--- msqltcl-1.50/new-tclAppInit.c Tue Jun 6 07:25:38 1995
|
||||
+++ mysqltcl-1.50/new-tclAppInit.c Tue Jun 23 18:28:14 1998
|
||||
@@ -14,7 +14,7 @@
|
||||
static char sccsid[] = "@(#) tclAppInit.c 1.11 94/12/17 16:14:03";
|
||||
#endif /* not lint */
|
||||
#include <errno.h>
|
||||
diff -u -r mysqltcl-1.53/mysqltclsh.c mysqltcl-1.53p/mysqltclsh.c
|
||||
--- mysqltcl-1.53/mysqltclsh.c Wed Mar 18 13:44:55 1998
|
||||
+++ mysqltcl-1.53p/mysqltclsh.c Mon Apr 26 11:26:26 1999
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <X11/Intrinsic.h>
|
||||
#endif
|
||||
|
||||
-#include "tcl.h"
|
||||
+#include "tclExtend.h"
|
||||
|
||||
/*
|
||||
* The following variable is a special hack that is needed in order for
|
||||
@@ -48,7 +48,7 @@
|
||||
int argc; /* Number of command-line arguments. */
|
||||
char **argv; /* Values of command-line arguments. */
|
||||
{
|
||||
- Tcl_Main(argc, argv);
|
||||
@@ -61,7 +61,7 @@
|
||||
#ifdef TCL_XT_TEST
|
||||
XtToolkitInitialize();
|
||||
#endif
|
||||
- Tcl_Main(argc, argv, Tcl_AppInit);
|
||||
+ TclX_Main(argc, argv, Tcl_AppInit);
|
||||
return 0; /* Needed only to prevent compiler warning. */
|
||||
}
|
||||
|
||||
@@ -79,6 +79,10 @@
|
||||
@@ -92,6 +92,10 @@
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
+ if (Tclx_Init(interp) == TCL_ERROR) {
|
||||
+ if (Tclx_Init(interp) == TCL_ERROR) {
|
||||
+ return TCL_ERROR;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Call the init procedures for included packages. Each call should
|
||||
* look like this:
|
||||
@@ -90,7 +94,7 @@
|
||||
* where "Mod" is the name of the module.
|
||||
*/
|
||||
|
||||
- if (Msqltcl_Init(interp) == TCL_ERROR) {
|
||||
+ if (Mysqltcl_Init(interp) == TCL_ERROR) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
@@ -106,6 +110,6 @@
|
||||
#ifdef TCL_TEST
|
||||
#ifdef TCL_XT_TEST
|
||||
if (Tclxttest_Init(interp) == TCL_ERROR) {
|
||||
@@ -135,6 +139,6 @@
|
||||
* then no user-specific startup file will be run under any conditions.
|
||||
*/
|
||||
|
||||
- tcl_RcFileName = "~/.tclshrc";
|
||||
+/* tcl_RcFileName = "~/.tclshrc"; */
|
||||
- Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY);
|
||||
+/* Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY);*/
|
||||
return TCL_OK;
|
||||
}
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "License"); you may not use this file except in
|
||||
# compliance with the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS"
|
||||
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing rights and limitations
|
||||
# under the License.
|
||||
#
|
||||
# The Original Code is the Bonsai CVS tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
# Netscape Communications Corporation. All Rights Reserved.
|
||||
|
||||
|
||||
# This Makefile helps you install Bonsai. Define PERL and MYSQLTCL to
|
||||
# the full pathnames of where you have these utilities. Define PREFIX
|
||||
# to where you will install the running Bonsai. Then "make install" should
|
||||
# copy things for you.
|
||||
|
||||
CC = cc
|
||||
CFLAGS = -g
|
||||
#LDFLAGS = -lcrypt
|
||||
#PERL = /usr/bin/perl
|
||||
#MYSQLTCL = /bonsai/bin/mysqltcl
|
||||
#PREFIX = /home/httpd/html/bonsai
|
||||
|
||||
FILES = CGI.tcl \
|
||||
SourceChecker.cgi \
|
||||
SourceChecker.pm \
|
||||
addcheckin.tcl \
|
||||
admin.cgi \
|
||||
adminfuncs.tcl \
|
||||
adminmail.tcl \
|
||||
branchspam.cgi \
|
||||
branchspammer.cgi \
|
||||
changebar.tcl \
|
||||
closemessage \
|
||||
contacthelp.html \
|
||||
countcheckins.cgi \
|
||||
createlegaldirs.tcl \
|
||||
cvsblame.cgi \
|
||||
cvsblame.pl \
|
||||
cvsguess.cgi \
|
||||
cvsindex.pl \
|
||||
cvslog.cgi \
|
||||
cvsmenu.pl \
|
||||
cvsquery.cgi \
|
||||
cvsquery.pl \
|
||||
cvsqueryform.cgi \
|
||||
cvsregexp.html \
|
||||
cvsview2.cgi \
|
||||
doadmin.cgi \
|
||||
doeditcheckin.cgi \
|
||||
doeditmessage.cgi \
|
||||
doeditprofile.cgi \
|
||||
doeditwhiteboard.cgi \
|
||||
dolog.pl \
|
||||
dotweak.cgi \
|
||||
editcheckin.cgi \
|
||||
editmessage.cgi \
|
||||
editprofile.cgi \
|
||||
editwhiteboard.cgi \
|
||||
globals.tcl \
|
||||
handleAdminMail.tcl \
|
||||
handleCheckinMail.tcl \
|
||||
header.pl \
|
||||
index.html \
|
||||
indextest.pl \
|
||||
lloydcgi.pl \
|
||||
localprofile.cgi \
|
||||
maketables.sh \
|
||||
moduleanalyse.cgi \
|
||||
modules.pl \
|
||||
multidiff.cgi \
|
||||
myglobrecur.tcl \
|
||||
openmessage \
|
||||
perlifyconfig.tcl \
|
||||
processqueue.pl \
|
||||
profile.cgi \
|
||||
rebuildcvshistory.cgi \
|
||||
rebuilddatabase.tcl \
|
||||
rebuildtaginfo.cgi \
|
||||
repophook.cgi \
|
||||
reposfiles.pl \
|
||||
rview.cgi \
|
||||
show2.cgi \
|
||||
showcheckins.cgi \
|
||||
switchtree.cgi \
|
||||
testlock.pl \
|
||||
toplevel.cgi \
|
||||
utils.pl \
|
||||
viewold.cgi
|
||||
|
||||
trapdoor: trapdoor.o
|
||||
$(CC) -o trapdoor trapdoor.o $(LDFLAGS)
|
||||
|
||||
install: trapdoor
|
||||
mkdir -p $(PREFIX) && \
|
||||
for I in $(FILES); do \
|
||||
echo Installing $$I && \
|
||||
sed -e s#/usr/bonsaitools/bin/perl#$(PERL)#g \
|
||||
-e s#/usr/bonsaitools/bin/mysqltcl#$(MYSQLTCL)#g \
|
||||
-e s#/tools/ns/bin/perl5#$(PERL)#g \
|
||||
$$I > $(PREFIX)/$$I && \
|
||||
chmod 755 $(PREFIX)/$$I; done && \
|
||||
mkdir -p $(PREFIX)/data && \
|
||||
cp -f trapdoor $(PREFIX)/data && \
|
||||
chmod 755 $(PREFIX)/data && \
|
||||
cp -f bonsai.gif $(PREFIX) && \
|
||||
chmod 755 $(PREFIX)/bonsai.gif
|
||||
|
||||
clean:
|
||||
rm -f trapdoor trapdoor.o
|
||||
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "License"); you may not use this file except in
|
||||
# compliance with the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS"
|
||||
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing rights and limitations
|
||||
# under the License.
|
||||
#
|
||||
# The Original Code is the Bonsai CVS tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
# Netscape Communications Corporation. All Rights Reserved.
|
||||
|
||||
|
||||
# This Makefile helps you install Bonsai. Define PERL and MYSQLTCL to
|
||||
# the full pathnames of where you have these utilities. Define PREFIX
|
||||
# to where you will install the running Bonsai. Then "make install" should
|
||||
# copy things for you.
|
||||
|
||||
CC = @CC@
|
||||
CFLAGS = @CFLAGS@
|
||||
# -lcrypt
|
||||
LDFLAGS = @LIBS@
|
||||
# /usr/bin/perl
|
||||
PERL = @PERL@
|
||||
# /usr/local/src/mysqltcl-1.53/mysqltclsh
|
||||
MYSQLTCL = @MYSQLTCL@
|
||||
# /var/www/bonsai
|
||||
PREFIX = @prefix@/bonsai
|
||||
|
||||
CVS=@CVS@
|
||||
RLOG=@RLOG@
|
||||
CO=@CO@
|
||||
RCSDIFF=@RCSDIFF@
|
||||
|
||||
FILES = CGI.tcl \
|
||||
SourceChecker.cgi \
|
||||
SourceChecker.pm \
|
||||
addcheckin.tcl \
|
||||
admin.cgi \
|
||||
adminfuncs.tcl \
|
||||
adminmail.tcl \
|
||||
branchspam.cgi \
|
||||
branchspammer.cgi \
|
||||
changebar.tcl \
|
||||
closemessage \
|
||||
contacthelp.html \
|
||||
countcheckins.cgi \
|
||||
createlegaldirs.tcl \
|
||||
cvsblame.cgi \
|
||||
cvsblame.pl \
|
||||
cvsguess.cgi \
|
||||
cvsindex.pl \
|
||||
cvslog.cgi \
|
||||
cvsmenu.pl \
|
||||
cvsquery.cgi \
|
||||
cvsquery.pl \
|
||||
cvsqueryform.cgi \
|
||||
cvsregexp.html \
|
||||
cvsview2.cgi \
|
||||
doadmin.cgi \
|
||||
doeditcheckin.cgi \
|
||||
doeditmessage.cgi \
|
||||
doeditprofile.cgi \
|
||||
doeditwhiteboard.cgi \
|
||||
dolog.pl \
|
||||
dotweak.cgi \
|
||||
editcheckin.cgi \
|
||||
editmessage.cgi \
|
||||
editprofile.cgi \
|
||||
editwhiteboard.cgi \
|
||||
globals.tcl \
|
||||
handleAdminMail.tcl \
|
||||
handleCheckinMail.tcl \
|
||||
header.pl \
|
||||
index.html \
|
||||
indextest.pl \
|
||||
lloydcgi.pl \
|
||||
localprofile.cgi \
|
||||
maketables.sh \
|
||||
moduleanalyse.cgi \
|
||||
modules.pl \
|
||||
multidiff.cgi \
|
||||
myglobrecur.tcl \
|
||||
openmessage \
|
||||
perlifyconfig.tcl \
|
||||
processqueue.pl \
|
||||
profile.cgi \
|
||||
rebuildcvshistory.cgi \
|
||||
rebuilddatabase.tcl \
|
||||
rebuildtaginfo.cgi \
|
||||
repophook.cgi \
|
||||
reposfiles.pl \
|
||||
rview.cgi \
|
||||
show2.cgi \
|
||||
showcheckins.cgi \
|
||||
switchtree.cgi \
|
||||
testlock.pl \
|
||||
toplevel.cgi \
|
||||
utils.pl \
|
||||
viewold.cgi
|
||||
|
||||
all: trapdoor configdata
|
||||
|
||||
trapdoor: trapdoor.o
|
||||
$(CC) -o trapdoor trapdoor.o $(LDFLAGS)
|
||||
|
||||
configdata: configdata.in
|
||||
sed -e s#_CVS_#$(CVS)#g \
|
||||
-e s#_RLOG_#$(RLOG)#g \
|
||||
-e s#_CO_#$(CO)#g \
|
||||
-e s#_RCSDIFF_#$(RCSDIFF)#g \
|
||||
$< >$@
|
||||
|
||||
install: trapdoor configdata
|
||||
-mkdir -p $(PREFIX)
|
||||
@for I in $(FILES); do \
|
||||
echo Installing $$I && \
|
||||
sed -e s#/usr/bonsaitools/bin/perl#$(PERL)#g \
|
||||
-e s#/usr/bonsaitools/bin/mysqltcl#$(MYSQLTCL)#g \
|
||||
-e s#/tools/ns/bin/perl5#$(PERL)#g \
|
||||
$$I > $(PREFIX)/$$I && \
|
||||
chmod 755 $(PREFIX)/$$I; done
|
||||
-mkdir -p $(PREFIX)/data
|
||||
cp trapdoor $(PREFIX)/data
|
||||
chmod 755 $(PREFIX)/data
|
||||
cp bonsai.gif $(PREFIX)
|
||||
chmod 755 $(PREFIX)/bonsai.gif
|
||||
@if test ! -r $(PREFIX)/data/configdata ; then \
|
||||
echo "Installing configdata" && \
|
||||
cp configdata $(PREFIX)/data ; \
|
||||
else \
|
||||
echo ; \
|
||||
echo "Not replacing existing configdata" ; \
|
||||
echo "Check configdata in build directory for new features" ; \
|
||||
fi
|
||||
@echo
|
||||
@echo "If you are installing a new Bonsai (not upgrading), you should"
|
||||
@echo "run maketables.sh to create database tables, then customize the"
|
||||
@echo "Bonsai configuration in $(PREFIX)/data/configdata"
|
||||
|
||||
clean:
|
||||
rm -f trapdoor trapdoor.o configdata
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
dnl autoconf tests for bonsai
|
||||
dnl Pontus Lidman 99-04-27
|
||||
dnl
|
||||
dnl Check if mysqltclsh is compiled with tclX support
|
||||
dnl
|
||||
dnl AC_PROG_MYSQLTCL_TCLX([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||
dnl Test for mysqltclsh compiled with tclX and define MYSQLTCL
|
||||
dnl
|
||||
AC_DEFUN(AC_PROG_MYSQLTCL_TCLX,
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the gtk-config script
|
||||
dnl
|
||||
AC_PATH_PROGS(MYSQLTCL, mysqltclsh mysqltcl, no)
|
||||
AC_MSG_CHECKING(for tclX flock in mysqltclsh)
|
||||
no_mysqltclsh=""
|
||||
|
||||
if test "$MYSQLTCL" = "no" ; then
|
||||
no_mysqltclsh=yes
|
||||
else
|
||||
dnl
|
||||
dnl Perform test
|
||||
dnl
|
||||
have_flock=`cat tclx_test.tcl | $MYSQLTCL`
|
||||
if test "x$have_flock" = "x0" ; then
|
||||
no_mysqltclsh=yes
|
||||
fi
|
||||
fi
|
||||
if test "x$no_mysqltclsh" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$1], , :, [$1])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$MYSQLTCL" = "no" ; then
|
||||
echo "*** mysqltclsh could not be found"
|
||||
echo "*** make sure it is installed and in your PATH, then try again"
|
||||
else
|
||||
echo "*** mysqltclsh is not compiled with tclX support"
|
||||
echo "*** see the file INSTALL for additional information"
|
||||
fi
|
||||
ifelse([$2], , :, [$2])
|
||||
fi
|
||||
AC_SUBST(MYSQLTCL)
|
||||
])
|
||||
dnl
|
||||
dnl check if Perl::DB is installed
|
||||
dnl
|
||||
AC_DEFUN(AC_PERL_DB,
|
||||
[
|
||||
AC_MSG_CHECKING(for perl DBD::mysql module)
|
||||
$PERL -w -c -e 'use DBD::mysql' 2>/dev/null; has_dbd=$?
|
||||
if test "x$has_dbd" = "x0" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$1], , :, [$1])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
echo "*** the perl MySQL module (DBD::mysql) could not be found"
|
||||
ifelse([$2], , :, [$2])
|
||||
fi
|
||||
])
|
||||
dnl
|
||||
dnl check if Date::Parse is installed
|
||||
dnl
|
||||
AC_DEFUN(AC_PERL_DATEPARSE,
|
||||
[
|
||||
AC_MSG_CHECKING(for perl Date::parse module)
|
||||
$PERL -w -c -e 'use Date::Parse' 2>/dev/null; has_dateparse=$?
|
||||
if test "x$has_dateparse" = "x0" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$1], , :, [$1])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
echo "*** the perl Date::Parse module could not be found"
|
||||
ifelse([$2], , :, [$2])
|
||||
fi
|
||||
])
|
|
@ -0,0 +1,46 @@
|
|||
# Example configuration file for Bonsai
|
||||
|
||||
# The Bonsai modules and their relation to cvs
|
||||
|
||||
# treelist is a list of all configured Bonsai modules
|
||||
# to add a module, add its name to the treelist
|
||||
# then duplicate the treeinfo lines below and
|
||||
# change the values appropriately
|
||||
|
||||
set treelist { default }
|
||||
|
||||
set treeinfo(default,module) mymodule
|
||||
set treeinfo(default,branch) {}
|
||||
set treeinfo(default,repository) {/usr/local/cvsroot}
|
||||
set treeinfo(default,description) {MyModule long description}
|
||||
set treeinfo(default,shortdesc) {MyModule short description}
|
||||
|
||||
# Where to find system commands
|
||||
set cvscommand _CVS_
|
||||
set rlogcommand _RLOG_
|
||||
set rcsdiffcommand _RCSDIFF_
|
||||
set cocommand _CO_
|
||||
|
||||
# URL to your copy of LXR
|
||||
set lxr_base http://localhost/webtools/lxr/source
|
||||
set mozilla_lxr_kludge TRUE
|
||||
|
||||
# URL to your copy of tinderbox
|
||||
set tinderbox_base http://localhost/webtools/tinderbox
|
||||
|
||||
# how bug numbers are HTMLified
|
||||
set BUGSYSTEMEXPR {<A HREF="http://localhost/bugzilla/show_bug.cgi?id=&">&</A>}
|
||||
|
||||
# Somebody responsible for the CVS repository
|
||||
set cvsadmin somebody@somedomain
|
||||
set userdomain somedomain
|
||||
|
||||
# User and password for access to the MySQL bonsai database
|
||||
# use empty string ("") for password if you want to access the database
|
||||
# without using a password (not recommended)
|
||||
set mysqluser nobody
|
||||
set mysqlpassword ""
|
||||
|
||||
# LDAP server if you have one
|
||||
set ldapserver ldap.somedomain
|
||||
set ldapport 389
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,29 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(trapdoor.c)
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PATH_PROG(PERL,perl)
|
||||
AC_PROG_MYSQLTCL_TCLX
|
||||
AC_PERL_DB
|
||||
AC_PERL_DATEPARSE
|
||||
|
||||
AC_PATH_PROG(CO,co)
|
||||
AC_PATH_PROG(CVS,cvs)
|
||||
AC_PATH_PROG(RLOG,rlog)
|
||||
AC_PATH_PROG(RCSDIFF,rcsdiff)
|
||||
|
||||
|
||||
dnl Checks for libraries.
|
||||
dnl Replace `main' with a function in -lcrypt:
|
||||
AC_CHECK_LIB(crypt, crypt)
|
||||
|
||||
dnl Checks for header files.
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
|
||||
dnl Checks for library functions.
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
AC_OUTPUT_COMMANDS([echo type 'make install' to install bonsai])
|
||||
|
|
@ -198,10 +198,12 @@ print q(
|
|||
);
|
||||
|
||||
foreach $path (split('/',$rcs_path)) {
|
||||
|
||||
# Customize this translation
|
||||
$link_path .= url_encode2($path).'/' if $path ne 'mozilla';
|
||||
print "<A HREF='http://lxr.mozilla.org/mozilla/source/$link_path'>$path</a>/ ";
|
||||
print "<A HREF='$lxr_base/$link_path'>$path</a>/ ";
|
||||
}
|
||||
print "<A HREF='http://lxr.mozilla.org/mozilla/source/$link_path$file_tail'>$file_tail</a> ";
|
||||
print "<A HREF='$lxr_base/$link_path$file_tail'>$file_tail</a> ";
|
||||
|
||||
print " (<A HREF='cvsblame.cgi?file=$filename&rev=$revision&root=$root'";
|
||||
print " onmouseover='return log(event,\"$prev_revision{$revision}\",\"$revision\");'" if $useLayers;
|
||||
|
@ -220,7 +222,7 @@ print qq(
|
|||
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
|
||||
<TR>
|
||||
<TD NOWRAP>
|
||||
<A HREF="http://lxr.mozilla.org/mozilla/source/$link_path$file_tail">LXR: Cross Reference</A>
|
||||
<A HREF="$lxr_base/$link_path$file_tail">LXR: Cross Reference</A>
|
||||
</TD>
|
||||
</TR><TR>
|
||||
<TD NOWRAP>
|
||||
|
|
|
@ -159,7 +159,7 @@ $query_debug = $form{'debug'};
|
|||
$result= &query_checkins( $mod_map );
|
||||
|
||||
for $i (@{$result}) {
|
||||
$w{"$i->[$CI_WHO]\@netscape.com"} = 1;
|
||||
$w{"$i->[$CI_WHO]\@$userdomain"} = 1;
|
||||
}
|
||||
|
||||
@p = sort keys %w;
|
||||
|
|
|
@ -42,6 +42,7 @@ $flag_tagcmd = 0;
|
|||
$repository = '';
|
||||
$repository_tag = '';
|
||||
$mailhost = 'localhost';
|
||||
$rlogcommand = '/usr/bin/rlog';
|
||||
|
||||
@mailto=();
|
||||
@changed_files = ();
|
||||
|
@ -183,7 +184,7 @@ sub process_cvs_info {
|
|||
if( ! -r $rcsfile ){
|
||||
$rcsfile = "$envcvsroot/$repository/Attic/$fn,v";
|
||||
}
|
||||
open(LOG, "/tools/ns/bin/rlog -N -r$rev $rcsfile |")
|
||||
open(LOG, "$rlogcommand -N -r$rev $rcsfile |")
|
||||
|| print STDERR "dolog.pl: Couldn't run rlog\n";
|
||||
while(<LOG>){
|
||||
if (/^date:.* author: ([^;]*);.*/) {
|
||||
|
|
|
@ -28,8 +28,11 @@ set cocommand /tools/ns/bin/co
|
|||
set lxr_base http://cvs-mirror.mozilla.org/webtools/lxr/source
|
||||
set mozilla_lxr_kludge TRUE
|
||||
|
||||
set ldapserver nsdirectory.mcom.com
|
||||
# set ldapserver hoth.mcom.com
|
||||
set cvsadmin terry@mozilla.org
|
||||
set mysqluser nobody
|
||||
set mysqlpassword ""
|
||||
|
||||
set ldapserver nsdirectory.netscape.com
|
||||
set ldapport 389
|
||||
|
||||
|
||||
|
@ -60,8 +63,8 @@ if {[info exists tcl_version] && $tcl_version >= 8.0} {
|
|||
}
|
||||
return [clock scan $str]
|
||||
}
|
||||
proc fmtclock {date args} {
|
||||
}
|
||||
# proc fmtclock {date args} {
|
||||
# }
|
||||
}
|
||||
|
||||
|
||||
|
@ -70,9 +73,13 @@ proc NOTDEF {foo} {
|
|||
}
|
||||
|
||||
proc ConnectToDatabase {} {
|
||||
global mysqlhandle
|
||||
global mysqlhandle mysqluser mysqlpassword
|
||||
if {![info exists mysqlhandle]} {
|
||||
set mysqlhandle [mysqlconnect]
|
||||
if { $mysqlpassword == "" } {
|
||||
set mysqlhandle [mysqlconnect -user "$mysqluser"]
|
||||
} else {
|
||||
set mysqlhandle [mysqlconnect -user "$mysqluser" -password "$mysqlpassword"]
|
||||
}
|
||||
mysqluse $mysqlhandle "bonsai"
|
||||
}
|
||||
}
|
||||
|
@ -175,6 +182,7 @@ proc AddToDatabase {lines desc} {
|
|||
lassign [split $line "|"] chtype date name repository dir \
|
||||
file version sticky branch addlines removelines
|
||||
|
||||
Log "line <$line> date <$date>"
|
||||
regsub {^T} $branch {} branch
|
||||
regsub {/$} $dir {} dir
|
||||
if {[cequal $addlines ""]} {
|
||||
|
|
|
@ -16,7 +16,25 @@
|
|||
# Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
# Netscape Communications Corporation. All Rights Reserved.
|
||||
|
||||
mysql > /dev/null 2>/dev/null << OK_ALL_DONE
|
||||
USER=nobody
|
||||
PASSWORD=
|
||||
|
||||
if test x$PASSWORD = x ; then
|
||||
MYSQL="mysql -u $USER"
|
||||
else
|
||||
MYSQL="mysql -u $USER -p $PASSWORD"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Will use user=\"$USER\" and password=\"$PASSWORD\" for bonsai database."
|
||||
echo "If you have a previous bonsai install, this script will drop all"
|
||||
echo "bonsai tables. Press ctrl-c to bail out now or return to continue."
|
||||
|
||||
read
|
||||
|
||||
echo Dropping old tables
|
||||
|
||||
$MYSQL > /dev/null 2>/dev/null << OK_ALL_DONE
|
||||
|
||||
use bonsai;
|
||||
|
||||
|
@ -30,9 +48,9 @@ drop table branches;
|
|||
drop table tags;
|
||||
OK_ALL_DONE
|
||||
|
||||
echo creating new tables
|
||||
|
||||
|
||||
mysql << OK_ALL_DONE
|
||||
$MYSQL << OK_ALL_DONE
|
||||
use bonsai;
|
||||
create table descs (
|
||||
id mediumint not null auto_increment primary key,
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
#!/usr/bonsaitools/bin/mysqltcl
|
||||
# -*- Mode: tcl; indent-tabs-mode: nil -*-
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "License"); you may not use this file except in
|
||||
# compliance with the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS"
|
||||
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing rights and limitations
|
||||
# under the License.
|
||||
#
|
||||
# The Original Code is the Bonsai CVS tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
# Netscape Communications Corporation. All Rights Reserved.
|
||||
|
||||
# Oy, what a hack.
|
||||
#
|
||||
# Bonsai has a split heritage, and so some of it is written in Perl, and
|
||||
# some of it is written in TCL. The perl half wants to be able to look
|
||||
# at the basic configuration, kept in data/configdata. But that file is
|
||||
# designed to be quickly read by TCL. And I don't feel like writing perl
|
||||
# code to parse it. So, instead, we have this hack which will read the
|
||||
# file and push it out in a form friendlier to perl. Gross, gross, gross.
|
||||
|
||||
|
||||
source globals.tcl
|
||||
|
||||
proc haschar {str char} {
|
||||
return [string match "*$char*" $str]
|
||||
}
|
||||
|
||||
proc PerlStringify {str} {
|
||||
if {![haschar $str "'"]} {
|
||||
return "'$str'"
|
||||
}
|
||||
foreach i [list "/" ":" "@" "#" "%" "^"] {
|
||||
if {![haschar $str $i]} {
|
||||
return "q$i$str$i"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Lock
|
||||
LoadTreeConfig
|
||||
|
||||
set outfilename "data/configdata.pl"
|
||||
set fid [open $outfilename "w"]
|
||||
puts $fid "\# WARNING! Do not edit this file! Automatically generated!"
|
||||
puts $fid "\# You want to instead edit the 'configdata' file. This file"
|
||||
puts $fid "\# gets automatically generated from that one."
|
||||
puts $fid ""
|
||||
regsub -all {(^|[^\])&} $BUGSYSTEMEXPR {\1$\&} BUGSYSTEMEXPR
|
||||
puts $fid "\$BUGSYSTEMEXPR = [PerlStringify $BUGSYSTEMEXPR];"
|
||||
puts $fid "\$cvscommand = [PerlStringify $cvscommand];"
|
||||
puts $fid "\$rlogcommand = [PerlStringify $rlogcommand];"
|
||||
puts $fid "\$rcsdiffcommand = [PerlStringify $rcsdiffcommand];"
|
||||
puts $fid "\$cocommand = [PerlStringify $cocommand];"
|
||||
puts $fid "\$lxr_base = [PerlStringify $lxr_base];"
|
||||
puts $fid "\$mozilla_lxr_kludge = [PerlStringify $mozilla_lxr_kludge];"
|
||||
set list ""
|
||||
foreach i $treelist {
|
||||
append list [PerlStringify $i]
|
||||
append list ", "
|
||||
}
|
||||
puts $fid "@treelist = ($list);"
|
||||
|
||||
foreach i [lsort [array names treeinfo]] {
|
||||
lassign [split $i ","] a b
|
||||
if {![info exists done($a)]} {
|
||||
set done($a) 1
|
||||
puts $fid "\$treeinfo{[PerlStringify $a]} = {};"
|
||||
}
|
||||
puts $fid "\$treeinfo{[PerlStringify $a]}->{[PerlStringify $b]} = [PerlStringify $treeinfo($i)];"
|
||||
}
|
||||
|
||||
|
||||
close $fid
|
||||
catch {chmod 0666 $outfilename}
|
||||
|
||||
Unlock
|
|
@ -254,7 +254,7 @@ puts "
|
|||
<tr>
|
||||
<td valign=top>
|
||||
<a href=$cvsqueryurl><b>CVS Query Tool</b></a><br>
|
||||
<a href=http://cvs-mirror.mozilla.org/webtools/tinderbox/showbuilds.cgi>Tinderbox continuous builds</a><br>
|
||||
<a href=$tinderbox_base/showbuilds.cgi>Tinderbox continuous builds</a><br>
|
||||
<a href=\"switchtree.cgi[BatchIdPart ?]\">Switch to look at a different tree or branch</a><br>
|
||||
<a href=viewold.cgi[BatchIdPart ?]>Time warp -- view a different day's hook.</a><br>
|
||||
<a href=countcheckins.cgi[BatchIdPart ?]>See some stupid statistics about recent checkins.</a><br>
|
||||
|
|
|
@ -101,13 +101,13 @@ sub validateRepository {
|
|||
return;
|
||||
}
|
||||
}
|
||||
print "Invalid repository $root selected. Send mail to terry\@netscape.com if you think this should have worked.\n";
|
||||
print "Invalid repository $root selected. Send mail to $cvsadmin if you think this should have worked.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
sub ConnectToDatabase {
|
||||
if ($dbh == "") {
|
||||
$dbh = DBI->connect("bonsai","bonsai","","mysql") || die "Can't connect to database server -- $DBD::mysql::db_errstr";
|
||||
$dbh = DBI->connect("bonsai","$mysqluser","","mysql") || die "Can't connect to database server -- $DBD::mysql::db_errstr";
|
||||
}
|
||||
return $dbh;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче