home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / drsotprcon.tcl < prev    next >
Text File  |  1997-02-06  |  4KB  |  121 lines

  1.  
  2. # Copyright (c) 1997 by Cayenne Software Inc.
  3. #
  4. # This software is furnished under a license and may be used only in
  5. # accordance with the terms of such license and with the inclusion of
  6. # the above copyright notice. This software or any other copies thereof
  7. # may not be provided or otherwise made available to any other person.
  8. # No title to and ownership of the software is hereby transferred.
  9. #
  10. # The information in this software is subject to change without notice
  11. # and should not be construed as a commitment by Cayenne Software Inc
  12. #
  13. #---------------------------------------------------------------------------
  14. #
  15. #       File            : @(#)drsotprcon.tcl    /main/hindenburg/3 23 Jan 1997
  16. #       Author          : H. Broeze
  17. #       Original date   : 14 Januari 1997
  18. #       Description     : DOORS integration class definitions
  19. #
  20. #---------------------------------------------------------------------------
  21. #
  22.  
  23.  
  24. source [m4_path_name tcl libocl.tcl]
  25.  
  26. set requiredEtcFiles "drsdiagra.mnu drsdesk.mnu "
  27.  
  28. global argv
  29.  
  30. #check arguments
  31. if { [llength $argv] != 1} {
  32.     puts "ERROR: invalid number of arguments"
  33.     puts "USAGE: otsh -f drsotprcon.tcl -- <OT project>"
  34.     exit
  35. }
  36.  
  37. #check the existance of the required custom files
  38. #
  39. foreach etcFile $requiredEtcFiles {
  40.     set fullFileName [m4_path_name etc $etcFile]
  41.     if ![file isfile $fullFileName] {
  42.     puts "Required etc-file $fullFileName does not exist"
  43.     exit
  44.     }
  45. }
  46.  
  47. # Just some help features
  48. #
  49. proc CustomName {name} {
  50.     set entries [split $name '.']
  51.     return [lindex $entries 0]
  52. }
  53. proc CustomType {name} {
  54.     set entries [split $name '.']
  55.     return [lindex $entries 1]
  56. }
  57.  
  58. # Append a file
  59. #
  60. proc append_text_file {from to } {
  61.         set max 8092
  62.         set in [open $from r]
  63.         set out [open $to a]
  64.         while {[set result [read $in $max]] != ""} {
  65.                 puts $out $result nonewline
  66.         }
  67.         close $in
  68.         close $out
  69. }
  70.  
  71. set cont [ClientContext::global]
  72. set corp [$cont currentCorporate]
  73. if [$corp isNil] {
  74.     puts "LevelPath [$cont currentLevelString] has no corporate"
  75.     exit
  76. }
  77. set projName  [lindex $argv 0]
  78. set project [$corp findProject $projName]
  79. if [$project isNil] {
  80.     puts "Project $projName does not exist"
  81.     exit
  82. }
  83.  
  84. foreach etcFile $requiredEtcFiles {
  85.     set installEtcFileName [CustomName $etcFile]
  86.     if {$installEtcFileName == "drsdesk"} {
  87.     set etcFileName "desk"
  88.     } else {
  89.     set etcFileName "diagram"
  90.     }
  91.     set customFileV [$project findCustomFileVersion  \
  92.         $etcFileName [CustomType $etcFile]]
  93.     if ![$customFileV isNil] {
  94.     $customFileV edit
  95.     $customFileV quit
  96.     }
  97. }
  98. foreach etcFile $requiredEtcFiles {
  99.     set concatTmpFile [args_file {}]
  100.     set installEtcFileName [CustomName $etcFile]
  101.     if {$installEtcFileName == "drsdesk"} {
  102.     set etcFileName "desk"
  103.     } else {
  104.     set etcFileName "diagram"
  105.     }
  106.     set customFileV [$project findCustomFileVersion  \
  107.         $etcFileName [CustomType $etcFile]]
  108.     if [$customFileV isNil] {
  109.     set customFileV [$project createCustomFileVersion \
  110.         $etcFileName [CustomType $etcFile] ]
  111.     } else {
  112.     $customFileV downLoad $concatTmpFile
  113.     }
  114.     append_text_file  [m4_path_name etc $etcFile] $concatTmpFile
  115.     $customFileV edit
  116.     $customFileV upLoad $concatTmpFile
  117.     $customFileV quit
  118. }
  119.  
  120. puts "Installation of DOORS customization files finished.\nAfter reentering your project the DOORS menu will be visible in the ObjectTeam's browser menu"
  121.