/usr/lib/tcltk/rivet2.2/rivet-tcl/debug.tcl is in libapache2-mod-rivet 2.2.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | ###
## debug ?-option value? ?-option value?...
## A command to make debugging more convenient. Print strings, arrays
## and the values of variables as specified by the arguments.
##
## Also allows the setting of an array called debug which will pick up
## options for all debug commands.
##
## We create this command in the ::request namespace because we want the
## user to be able to use the debug array without actually having to set
## it at the global level.
##
## Options:
##
## -subst <on|off> - Each word should be considered a variable and subst'd.
## -separator <string> - A text string that goes between each variable.
## -ip <ip address> - A list of IP addresses to display to.
##
## $Id: debug.tcl 1340583 2012-05-19 22:32:19Z mxmanghi $
##
###
namespace eval ::rivet {
proc debug {args} {
# starting with 2.1.0 ::RivetUserConf can be created on demand (see ::rivet::inspect)
array set ::RivetUserConf [dict get [::rivet::inspect] user]
## If they've turned off debugging, we don't do anything.
if {[info exists ::RivetUserConf(Debug)] && !$::RivetUserConf(Debug)} {
return
}
## We want to save the REMOTE_ADDR for any subsequent calls to debug.
if {![info exists ::RivetUserConf(REMOTE_ADDR)]} {
set REMOTE_ADDR [env REMOTE_ADDR]
set ::RivetUserConf(REMOTE_ADDR) $REMOTE_ADDR
}
## Set some defaults for the options.
set data(subst) 0
set data(separator) <br>
## Check RivetUserConf for globally set options.
if {[info exists ::RivetUserConf(DebugIp)]} {
set data(ip) $::RivetUserConf(DebugIp)
}
if {[info exists ::RivetUserConf(DebugSubst)]} {
set data(subst) $::RivetUserConf(DebugSubst)
}
if {[info exists ::RivetUserConf(DebugSeparator)]} {
set data(separator) $::RivetUserConf(DebugSeparator)
}
import_keyvalue_pairs data $args
if {[info exists data(ip)]} {
set can_see 0
foreach ip $data(ip) {
if {[string match $data(ip)* $::RivetUserConf(REMOTE_ADDR)]} {
set can_see 1
break
}
}
if {!$can_see} { return }
}
if {[string tolower $data(subst)] != "on"} {
::rivet::html [join $data(args)]
return
}
set lastWasArray 0
foreach varName $data(args) {
upvar $varName var
if {[array exists var]} {
parray $varName
set lastWasArray 1
} elseif {[info exists var]} {
if {!$lastWasArray} {
::rivet::html $data(separator)
}
::rivet::html $var
set lastWasArray 0
} else {
if {!$lastWasArray} {
::rivet::html $data(separator)
}
::rivet::html $varName
set lastWasArray 0
}
}
}
}
|