You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.5 KiB
70 lines
2.5 KiB
# -*- tcl -*- |
|
# Maintenance Instruction: leave the 999999.xxx.x as is and use 'pmix make' or src/make.tcl to update from <pkg>-buildversion.txt |
|
# |
|
# Please consider using a BSD or MIT style license for greatest compatibility with the Tcl ecosystem. |
|
# Code using preferred Tcl licenses can be eligible for inclusion in Tcllib, Tklib and the punk package repository. |
|
# ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
|
# (C) 2023 |
|
# |
|
# @@ Meta Begin |
|
# Application canaryspace 999999.0a1.0 |
|
# Meta platform tcl |
|
# Meta license BSD |
|
# Meta summary Diagnostic tool for namespace navigation/introspection to help avoid command conflicts. |
|
# Meta description canaryspace loads the ::canaryspace namespace with wrappers for the set of commands |
|
# Meta description that exist in the global namespace :: at the time the canaryspace package is loaded. |
|
# Meta description These commands just emit info to stderr to assist in determining whether calls are |
|
# Meta description unintentionally being run in the namespace. |
|
# Meta description This is often the case with commands which use uplevel 1 or similar constructs to call |
|
# Meta description code in the callers namespace. If such commands need to run in arbitrary namespaces |
|
# Meta description which may have arbitrary commands then uplevelled commands may need to be prefixed with |
|
# Meta description :: or the appropriate namespace path. |
|
# Meta description Constructs such as punk pipelines deliberately run script segments in the calling context |
|
# Meta description and so may need to be comprised mainly of fully qualified commands. |
|
# @@ Meta End |
|
|
|
|
|
|
|
# ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
|
## Requirements |
|
##e.g package require frobz |
|
|
|
|
|
namespace eval canaryspace::setup { |
|
variable gcommands |
|
proc build_commands {} { |
|
variable gcommands |
|
gcommands.= nscommands ::* -raw |> .=>1 linelist |
|
foreach cmd $gcommands { |
|
proc ::canaryspace::$cmd args [string map [list <cmd> $cmd] { |
|
::puts stderr "CANARYSPACE <cmd>" |
|
::puts stderr " [::info level 0]" |
|
::tailcall ::<cmd> {*}$args |
|
} ] |
|
} |
|
} |
|
build_commands |
|
} |
|
|
|
# ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
|
namespace eval canaryspace { |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
|
## Ready |
|
package provide canaryspace [namespace eval canaryspace { |
|
::variable version |
|
::set version 999999.0a1.0 |
|
}] |
|
return |