STXInstaller.st
changeset 1282 7fa3b3c668f3
parent 1281 e83c14253471
child 1284 9f4ba1b3b604
equal deleted inserted replaced
1281:e83c14253471 1282:7fa3b3c668f3
   621     commandTraceView endEntry.
   621     commandTraceView endEntry.
   622 
   622 
   623     release := self smalltalkRelease.
   623     release := self smalltalkRelease.
   624 
   624 
   625     k := Win32OperatingSystem::RegistryEntry key:'HKEY_LOCAL_MACHINE\Software'.
   625     k := Win32OperatingSystem::RegistryEntry key:'HKEY_LOCAL_MACHINE\Software'.
       
   626     k isNil ifTrue:[
       
   627         self warn:'cannot update registry under HKEY_LOCAL_MACHINE\Software\eXept'.
       
   628         ^ self.
       
   629     ].
       
   630 
   626     k := k createSubKeyNamed:'eXept'.
   631     k := k createSubKeyNamed:'eXept'.
   627     k := k createSubKeyNamed:'Smalltalk/X'.
   632     k := k createSubKeyNamed:'Smalltalk/X'.
   628     k valueNamed:'CurrentVersion' put:release.
   633     k valueNamed:'CurrentVersion' put:release.
   629 
   634 
   630     k := k createSubKeyNamed:release.
   635     k := k createSubKeyNamed:release.
   631     k valueNamed:'LibDir' put:stxLibDir.
   636     k valueNamed:'LibDir' put:stxLibDir.
   632     k valueNamed:'BinDir' put:stxBinDir.
   637     k valueNamed:'BinDir' put:stxBinDir.
   633     k valueNamed:'DocDir' put:stxDocDir.
   638     k valueNamed:'DocDir' put:stxDocDir.
   634     k valueNamed:'PackageDirPath' put:stxPkgDir.
   639     k valueNamed:'PackageDirPath' put:stxPkgDir.
   635 
   640 
   636     "Modified: / 31.5.1999 / 15:24:41 / cg"
   641     "Modified: / 23.12.1999 / 22:21:18 / cg"
   637 !
   642 !
   638 
   643 
   639 createSymbolicLinks
   644 createSymbolicLinks
   640     |msg dirsToMake numDirs nDone|
   645     |msg dirsToMake numDirs nDone|
   641 
   646 
   771 recursiveCopy:src to:dst
   776 recursiveCopy:src to:dst
   772     self recursiveCopy:src to:dst print:true
   777     self recursiveCopy:src to:dst print:true
   773 !
   778 !
   774 
   779 
   775 recursiveCopy:src to:dst print:doPrint
   780 recursiveCopy:src to:dst print:doPrint
   776     |cmd srcF dstF d|
   781     |cmd srcBaseName srcF dstF d|
   777 
   782 
   778     srcF := src asFilename.
   783     srcF := src asFilename.
   779     dstF := dst asFilename.
   784     dstF := dst asFilename.
       
   785 
   780 "/    OperatingSystem isUNIXlike ifTrue:[
   786 "/    OperatingSystem isUNIXlike ifTrue:[
   781 "/        cmd := 'cp -r ' , src , ' ' , destDir.
   787 "/        cmd := 'cp -r ' , src , ' ' , destDir.
   782 "/        commandTraceView showCR:cmd , ' ...'.
   788 "/        commandTraceView showCR:cmd , ' ...'.
   783 "/        commandTraceView endEntry.
   789 "/        commandTraceView endEntry.
   784 "/        cmd := cmd , ' 2>&1' .
   790 "/        cmd := cmd , ' 2>&1' .
   785 "/
   791 "/
   786 "/        self executeCommandAndShowOutput:cmd
   792 "/        self executeCommandAndShowOutput:cmd
   787 "/    ] ifFalse:[
   793 "/    ] ifFalse:[
       
   794         srcBaseName := srcF baseName.
       
   795         (srcBaseName startsWith:'.#') ifTrue:[^ self].
       
   796 
   788         (#(
   797         (#(
   789             'CVS'
   798             'CVS'
   790             'not_delivered'
   799             'not_delivered'
   791         ) includes:srcF baseName) ifFalse:[
   800             '.cvsignore'
   792             srcF baseName includesMatchCharacters ifTrue:[
   801             '.dir.info'
       
   802         ) includes:srcBaseName) ifFalse:[
       
   803             srcBaseName includesMatchCharacters ifTrue:[
   793                 doPrint ifTrue:[
   804                 doPrint ifTrue:[
   794                     OperatingSystem isUNIXlike ifTrue:[
   805                     OperatingSystem isUNIXlike ifTrue:[
   795                         commandTraceView showCR:('cp ' , srcF pathName , ' ' , dstF pathName).
   806                         commandTraceView showCR:('cp ' , srcF pathName , ' ' , dstF pathName).
   796                     ] ifFalse:[
   807                     ] ifFalse:[
   797                         commandTraceView showCR:('copy ' , srcF pathName , ' ' , dstF pathName).
   808                         commandTraceView showCR:('copy ' , srcF pathName , ' ' , dstF pathName).
   798                     ].
   809                     ].
   799                     commandTraceView endEntry.
   810                     commandTraceView endEntry.
   800                 ].
   811                 ].
   801                 srcF directory directoryContents do:[:fileName |
   812                 srcF directory directoryContents do:[:fileName |
   802                     ((srcF baseName) match:fileName) ifTrue:[
   813                     (srcBaseName match:fileName) ifTrue:[
   803                         (#(
   814                         (#(
   804                             'CVS'
   815                             'CVS'
   805                             'not_delivered'
   816                             'not_delivered'
   806                         ) includes:fileName) ifFalse:[
   817                         ) includes:fileName) ifFalse:[
   807                             self 
   818                             self 
   820                     ].
   831                     ].
   821                     commandTraceView endEntry.
   832                     commandTraceView endEntry.
   822                 ].
   833                 ].
   823                 srcF isDirectory ifFalse:[
   834                 srcF isDirectory ifFalse:[
   824                     (dstF exists and:[dstF isDirectory]) ifTrue:[
   835                     (dstF exists and:[dstF isDirectory]) ifTrue:[
   825                         dstF := dstF construct:srcF baseName.
   836                         dstF := dstF construct:srcBaseName.
   826                     ].
   837                     ].
   827                     srcF copyTo:dstF.
   838                     srcF copyTo:dstF.
   828                     OperatingSystem isUNIXlike ifTrue:[
   839                     OperatingSystem isUNIXlike ifTrue:[
   829                         srcF isExecutable ifTrue:[
   840                         srcF isExecutable ifTrue:[
   830                             dstF makeExecutableForAll
   841                             dstF makeExecutableForAll
   831                         ]
   842                         ]
   832                     ]
   843                     ]
   833                 ] ifTrue:[
   844                 ] ifTrue:[
   834                     d := dstF asFilename construct:srcF baseName.
   845                     d := dstF asFilename construct:srcBaseName.
   835                     (d exists) ifFalse:[
   846                     (d exists) ifFalse:[
   836                         d makeDirectory.
   847                         d makeDirectory.
   837                     ].
   848                     ].
   838                     srcF directoryContents do:[:fileName |
   849                     srcF directoryContents do:[:fileName |
   839                         self recursiveCopy:(srcF construct:fileName) 
   850                         self recursiveCopy:(srcF construct:fileName) 
   844             ]
   855             ]
   845         ]
   856         ]
   846 "/    ]
   857 "/    ]
   847 
   858 
   848     "Created: / 31.5.1999 / 13:05:09 / cg"
   859     "Created: / 31.5.1999 / 13:05:09 / cg"
   849     "Modified: / 31.5.1999 / 13:14:19 / cg"
   860     "Modified: / 23.12.1999 / 22:07:41 / cg"
   850 ! !
   861 ! !
   851 
   862 
   852 !STXInstaller methodsFor:'startup'!
   863 !STXInstaller methodsFor:'startup'!
   853 
   864 
   854 askAndInstall
   865 askAndInstall