diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 19:39:39 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 19:39:39 (GMT) |
commit | ea28451286d3ea4a772fa174483f9a7a66bb1ab3 (patch) | |
tree | 6ee9d8a7848333a7ceeee3b13d492e40225f8b86 /tcllib/support/devel/sak/help/help.tcl | |
parent | b5ca09bae0d6a1edce939eea03594dd56383f2c8 (diff) | |
parent | 7c621da28f07e449ad90c387344f07a453927569 (diff) | |
download | blt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.zip blt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.tar.gz blt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.tar.bz2 |
Merge commit '7c621da28f07e449ad90c387344f07a453927569' as 'tcllib'
Diffstat (limited to 'tcllib/support/devel/sak/help/help.tcl')
-rw-r--r-- | tcllib/support/devel/sak/help/help.tcl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tcllib/support/devel/sak/help/help.tcl b/tcllib/support/devel/sak/help/help.tcl new file mode 100644 index 0000000..7e00f1e --- /dev/null +++ b/tcllib/support/devel/sak/help/help.tcl @@ -0,0 +1,75 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::help {} + +# ### + +proc ::sak::help::print {text} { + global critcldefault + puts stdout [string map \ + [list @@ $critcldefault] $text] + return +} + +proc ::sak::help::on {topic} { + variable base + + # Look for static text and dynamic, i.e. generated help. + # Static is prefered. + + set ht [file join $base $topic help.txt] + if {[file exists $ht]} { + return [get_input $ht] + } + + set ht [file join $base $topic help.tcl] + if {[file exists $ht]} { + source $ht + return [sak::help::on::$topic] + } + + set help "" + append help \n + append help " The topic \"$topic\" is not known." \n + append help " The known topics are:" \n\n + + append help [topics] + + return $help +} + +proc ::sak::help::alltopics {} { + # Locate the quick-help for all topics and combine it with a + # general header. + + set help "\n" + append help " SAK - Swiss Army Knife\n\n" + append help " sak is a tool to ease the work" + append help " of developers and release managers. Try:\n\n" + append help [topics] + + return $help +} + +proc ::sak::help::topics {} { + variable base + set help "" + foreach f [lsort [glob -nocomplain -directory $base */topic.txt]] { + append help \tsak\ help\ [get_input $f] + } + return $help +} + +# ### + +namespace eval ::sak::help { + variable base [file join $::distribution support devel sak] +} + +## +# ### + +package provide sak::help 1.0 |