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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc. 1996
  4. #
  5. #      File:              @(#)config_dp.tcl    /main/hindenburg/4 
  6. #      Author:            resc
  7. #      Description:        Config file for Delphi
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)config_dp.tcl    /main/hindenburg/4    17 Apr 1997   18 Mar 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. source [m4_path_name tcl cginit.tcl]
  12.  
  13. require wmt_util.tcl
  14. require machdep.tcl
  15.  
  16. proc importBuiltins {} {
  17.     set cc [ClientContext::global]
  18.     set phaseV [$cc currentPhase]
  19.     foreach sys {DelphiVCL} {
  20.         set sysV [$phaseV findSystemVersion $sys "system"]
  21.         if {![$sysV isNil]} {
  22.             puts -nonewline "System '$sys' already exists. Configure again? \[no]: "
  23.             set answer [gets stdin]
  24.             switch -glob -- [string tolower $answer] {
  25.                 y*  {puts ""}
  26.                 default {continue}
  27.             }
  28.         }
  29.          
  30.         set srcDir [location [m4_var get M4_home] tcl l_delphi]
  31.         set file [path_name concat $srcDir $sys tcl]
  32.         if {![file exist $file]} {
  33.             puts "Import of system '$sys' failed: file '$file' not found."
  34.         } else {
  35.             puts "Importing system '$sys'...  (this action will take some time)"
  36.             source $file
  37.         }
  38.         puts ""
  39.     }
  40. }
  41.                                                                                                                   
  42. proc m4copyfile {dir custName {fsName ""}} {
  43.     if {$fsName == ""} {
  44.         set fsName $custName
  45.     }
  46.  
  47.     if [file exists $fsName] {
  48.         set sourcefile $fsName
  49.     } else {
  50.         set sourcefile [m4_path_name $dir $fsName]
  51.     }
  52.  
  53.     set customFileV [findCustomizationFile $custName 1]
  54.  
  55.     $customFileV lockForWrite "Configure Delphi Environment"
  56.  
  57.     $customFileV upLoad $sourcefile
  58.  
  59.     $customFileV unlock
  60. }
  61.  
  62. proc m4basedir {} {
  63.     set clientContext [ClientContext::global]
  64.  
  65.     set configV [$clientContext currentConfig]
  66.  
  67.     if {[$configV isNil]} {
  68.         return [m4_var get M4_home]
  69.     }
  70.  
  71.     return [$configV path]
  72. }
  73.  
  74. proc findCustomizationFile {fullName {create 0}} {
  75.     set name [lindex [split $fullName .] 0]
  76.     set type [lindex [split $fullName .] 1]
  77.     set clientContext [ClientContext::global]
  78.  
  79.     set configV [$clientContext currentConfig]
  80.  
  81.     set customFileV [$configV findCustomFileVersion $name $type]
  82.  
  83.     if {$create && [$customFileV isNil]} {
  84.         puts "Creating customization file '$fullName' at configuration level"
  85.         set customFileV [$configV createCustomFileVersion $name $type]
  86.     }
  87.  
  88.     return $customFileV
  89. }
  90.  
  91. proc m4copydir {dir} {
  92.         set save_dir [pwd]
  93.         set subdir [location config $dir]
  94.         if [catch {set cddir [m4_path_name $subdir ClassDict.pas]}] {
  95.                 return
  96.         }
  97.  
  98.         set PhaseV [[ClientContext::global] currentPhase]
  99.  
  100.         cd [path_name directory $cddir]
  101.  
  102.         set base [m4basedir]
  103.         set files [glob -nocomplain *]
  104.         set dest [location [$PhaseV path] src]
  105.         if {! [file exist $dest]} {
  106.                 mkdir -path [list $dest]
  107.         }
  108.         foreach file $files {
  109.                 puts "copying $file to $dest"
  110.                 copy_text_file $file [location $dest $file]
  111.         }
  112.         cd $save_dir
  113. }    
  114.  
  115. puts "Configure Delphi Environment"
  116. puts "============================\n"
  117.  
  118. set cc [ClientContext::global]
  119. set phaseType [[[$cc currentPhase] phase] type]
  120. switch $phaseType {
  121.     "ObjectDesign" {
  122.        importBuiltins
  123.         puts "'Configure Delphi Environment' finished for phase '${phaseType}'."
  124.     }
  125.     "Implementation" {
  126.        m4copydir [location src DP]
  127.         puts "'Configure Delphi Environment' finished for phase '${phaseType}'."
  128.     }
  129.     default    {
  130.         puts "'Configure Delphi Environment' failed: invalid phase type '${phaseType}'."
  131.     }
  132. }
  133.  
  134.