home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / exportetfe.tcl < prev    next >
Text File  |  1997-11-04  |  2KB  |  97 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #    (c)    Cayenne Software Inc. 1997
  4. #
  5. #    File:        @(#)exportetfe.tcl    /main/titanic/1
  6. #    Description:    export tool (et.tcl) front end
  7. #
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)exportetfe.tcl    /main/titanic/1 4 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. global SCCS_W0;        set SCCS_W0 "
  12. @(#)exportetfe.tcl    /main/titanic/1
  13. "
  14. global progName0;    set progName0 "exportetfe.tcl"
  15.  
  16. global et_dont_run;    set et_dont_run 1
  17. source [m4_path_name tcl et.tcl]
  18.  
  19.  
  20. proc setProg0 {} {
  21.     set name [string trim $SCCS_W0 "\n%"]
  22.     if {$name != "W"} {
  23.     regexp "@.#.(.*)\t" $name dummy name
  24.     global progName0
  25.     set progName0 $name
  26.     }
  27. }
  28.  
  29. proc rmFile {fileName {warn 1}} {
  30.     if {[catch {BasicFS::removeFile $fileName} msg] && $warn} {
  31.     puts stderr "ERROR\[$progName0]: $msg"
  32.     }
  33. }
  34.  
  35. proc main {argv} {
  36.     #
  37.     # tmpFile
  38.     #    1: basic et args    (not: -f, -a, -o)
  39.     #    2: outFile {a|w}    (a: append; w: write)
  40.     #    3: identity of fileV1    (e.g. Graph:Uj0DiTzQ40bYw4QDuAGUAAQAAAAEA)
  41.     #    4: identity of fileV2
  42.     #    ...
  43.     #
  44.     setProg0
  45.  
  46.     set fileVersions {}
  47.     set tmpFile [lvarpop argv]
  48.     if {[catch {set fd [open $tmpFile r]} msg]} {
  49.     puts stderr "ERROR\[$progName0]: $msg"
  50.     rmFile $tmpFile 0
  51.     return
  52.     }
  53.     if {[gets $fd line] > 0} {
  54.     set basicArgs $line
  55.     } else {
  56.     puts stderr "ERROR\[$progName0]: file '$tmpFile' does not have any arguments at line 1"
  57.     rmFile $tmpFile 0
  58.     return
  59.     }
  60.     if {[gets $fd line] > 0} {
  61.     set outFile [lindex $line 0]
  62.     set mode [lindex $line 1]
  63.     set outFileArg -o
  64.     if {$mode == "a"} {
  65.         set outFileArg -a
  66.     }
  67.     } else {
  68.     puts stderr "ERROR\[$progName0]: file '$tmpFile' does not have an output file specified at line 2"
  69.     rmFile $tmpFile 0
  70.     return
  71.     }
  72.     while {[gets $fd line] > 0} {
  73.     lappend fileVersions $line
  74.     }
  75.     close $fd
  76.     rmFile $tmpFile
  77.  
  78.     set etArgs $basicArgs
  79.     lappend etArgs ${outFileArg}$outFile
  80.     foreach fileV $fileVersions {
  81.     set args [concat -f$fileV $etArgs]
  82.     puts stderr "% exportTool $args"
  83.     exportTool $args
  84.     puts stderr ""
  85.     if {$outFileArg != ""} {
  86.         set etArgs $basicArgs
  87.         lappend etArgs -a$outFile
  88.         set outFileArg ""
  89.     }
  90.     }
  91. }
  92.  
  93.  
  94. if {[catch {main $argv} reason]} {
  95.     puts stderr $errorInfo
  96. }
  97.