зеркало из https://github.com/mozilla/pjs.git
90 строки
2.8 KiB
Tcl
Executable File
90 строки
2.8 KiB
Tcl
Executable File
#!/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
|