home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / wntdocprocs_add.tcl < prev    next >
Text File  |  1996-12-05  |  2KB  |  55 lines

  1. # The Windows NT cmd.exe can handle the UNIX / path sepparator ok
  2. proc wntcomm {args} {
  3.     set newargs ""
  4.         foreach e $args {
  5.                 regsub -all {\\} $e {/} e
  6.                 set newargs "$newargs $e"
  7.         }
  8.         return "cmd.exe /c $newargs"
  9. }
  10.  
  11. proc createReport { name_list storeFile section } {
  12.  
  13.         # Prepare path_names
  14.         set M4repdir [path_name concat [m4_var get M4_home] reports]
  15.         set M4bindir [path_name concat [m4_var get M4_home] bin]
  16.  
  17.         # use the ClientContext to switch systems
  18.         set cc [ClientContext::global]
  19.  
  20.         # remember the current document-system we are in now
  21.         set currsys [$cc currentSystem]
  22.  
  23.         # get the system handle of the system we are documenting now
  24.         # the document object is a global set var in docbatch.tcl
  25.         set docsys  [$document docSys]
  26.  
  27.         # Change the context to the system to execute the report in
  28.         $cc changeLevelId $docsys
  29.  
  30.         # Set the first indent level to indent +
  31.         set indent +
  32.         # open the file in where the sub-structure will be generated
  33.         set fid [open $storeFile w]
  34.         # For each report name in the name_list run the (TCLbased) report-writer
  35.         foreach name [split $name_list " "] {
  36.            set name [string trim $name]
  37.            set tmpname [args_file {}]
  38.            puts "Executing TCL report writer for report $name.tcl"
  39.            # Run A command.com to redirect output
  40.        set command [wntcomm "$M4bindir/otsh -f $M4repdir/startreport.tcl -- $name.tcl"]
  41.            puts "Running command $command > $tmpname"
  42.            system "$command > $tmpname"
  43.            # Now generate the additional structure lines note that the section
  44.            # name - must - differ from the name used in the .str file, e.g.
  45.            # the new section name must be unique. We use the the report name.
  46.        regsub -all {\\} $tmpname {\\\\} newtmp
  47.            puts $fid "$name|$indent||DocText||$newtmp"
  48.            set indent =
  49.         }
  50.         # Close the sub-structure file
  51.         close $fid
  52.         # Go back to the context fo the current document system
  53.         $cc changeLevelId $currsys
  54. }
  55.