Version 0 of pkgDeps

Updated 2020-02-25 06:58:08 by DDG

DDG 2020-02-25: Below is a small utility script which writes all package require calls to stdout. This is useful to check if making a release of your application which packages are required for your a application. It shows recursively all packages on the terminal. I use this to create standalone files which contains all embedded modules before the application using the script mk_tm.tcl at the bottom of the wiki page Another Tcl module maker.

Here is the code:

#!/bin/env tclsh
# file pkgDeps.tcl

rename package package.orig

proc package {args} {
    set subcmd [lindex $args 0]
    if {$subcmd eq "require"} {
        puts stderr "package require $args"
    }
    package.orig {*}$args
}

if {[info exists argv0] && $argv0 eq [info script]} {
    if {[llength $argv] == 0} {
        puts "Usage: [info script] app.tcl ?other args?"
        exit 0
    }
    set ::argv0 [lindex $argv 0]
    set ::argv [lrange $argv 1 end]
    source $argv0 
}

Example call for the package mkdoc::mkdoc:

$ checkPkg.tcl mkdoc.tcl
package require require Tcl 8.4
package require require Markdown
package require require Tcl 8.4
package require require Tcl 8.2
package require require Tcl
package require require Tcl
package require require textutil
package require require Tcl 8.2
package require require textutil::string
package require require Tcl 8.2
package require require textutil::repeat
package require require Tcl 8.2
package require require textutil::adjust
package require require Tcl 8.2
package require require textutil::repeat
package require require textutil::string
package require require textutil::split
package require require Tcl 8.2
package require require textutil::tabify
package require require Tcl 8.2
package require require textutil::repeat
package require require textutil::trim
package require require Tcl 8.2
...

Discussion:

Please discuss here ...