STXInstaller.st
changeset 24 2b61cca30b01
parent 23 42997b231783
child 25 42ee3e7ced09
equal deleted inserted replaced
23:42997b231783 24:2b61cca30b01
       
     1 'From Smalltalk/X, Version:2.10.9 on 20-sep-1996 at 11:23:45'                   !
       
     2 
     1 Object subclass:#STXInstaller
     3 Object subclass:#STXInstaller
     2 	instanceVariableNames:'stxLibDir stxBinDir installDocFiles installSourceFiles
     4 	instanceVariableNames:'stxLibDir stxLibBinDir stxBinDir installDocFiles
     3 		installSTCFiles installGoodyFiles actionPercentageHolder
     5 		installSourceFiles installSTCFiles installGoodyFiles
     4 		actionTextHolder commandTraceView resources'
     6 		actionPercentageHolder actionTextHolder commandTraceView
     5 	classVariableNames:'LastBinDir LastLibDir'
     7 		resources'
       
     8 	classVariableNames:'LastBinDir LastLibBinDir LastLibDir'
     6 	poolDictionaries:''
     9 	poolDictionaries:''
     7 	category:'eXept-tools'
    10 	category:'eXept-tools'
     8 !
    11 !
     9 
    12 
    10 
    13 
    45 "/                            f exists and:[f isDirectory]].
    48 "/                            f exists and:[f isDirectory]].
    46     ^ dirs sort
    49     ^ dirs sort
    47 
    50 
    48     "Created: 18.7.1996 / 19:43:00 / cg"
    51     "Created: 18.7.1996 / 19:43:00 / cg"
    49     "Modified: 18.7.1996 / 19:45:08 / cg"
    52     "Modified: 18.7.1996 / 19:45:08 / cg"
       
    53 !
       
    54 
       
    55 defaultLibBinDirs
       
    56     |dirs|
       
    57 
       
    58     dirs := OrderedCollection new.
       
    59     dirs add:'/usr/local/lib'.
       
    60     dirs add:'/usr/lib'.
       
    61     dirs add:'/lib'.
       
    62     dirs add:(Filename homeDirectory 
       
    63                             constructString:'lib').
       
    64 
       
    65     dirs add:((Filename homeDirectory 
       
    66                             construct:'stx')
       
    67                             constructString:'lib').
       
    68     dirs add:'/tmp/stxlib'.
       
    69     dirs add:'/home/stx/lib'.
       
    70     dirs add:'/home2/stx/lib'.
       
    71 
       
    72     ^ dirs sort
       
    73 
       
    74     "Created: 18.7.1996 / 19:43:21 / cg"
       
    75     "Modified: 18.7.1996 / 19:46:04 / cg"
    50 !
    76 !
    51 
    77 
    52 defaultLibDirs
    78 defaultLibDirs
    53     |dirs|
    79     |dirs|
    54 
    80 
    80     |dirsToMake|
   106     |dirsToMake|
    81 
   107 
    82     dirsToMake := OrderedCollection new.
   108     dirsToMake := OrderedCollection new.
    83     dirsToMake add:stxBinDir.
   109     dirsToMake add:stxBinDir.
    84     dirsToMake add:stxLibDir.
   110     dirsToMake add:stxLibDir.
    85     dirsToMake add:(stxLibDir asFilename constructString:'lib').
   111     dirsToMake add:stxLibBinDir.
    86     dirsToMake add:(stxLibDir asFilename constructString:'lib/configurations').
   112     dirsToMake add:(stxLibDir asFilename constructString:'configurations').
    87     dirsToMake add:(stxLibDir asFilename constructString:'doc').
   113     dirsToMake add:(stxLibDir asFilename constructString:'doc').
    88     dirsToMake add:(stxLibDir asFilename constructString:'doc/online').
   114     dirsToMake add:(stxLibDir asFilename constructString:'doc/online').
    89     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/english').
   115     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/english').
    90     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/german').
   116     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/german').
    91     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/french').
   117     dirsToMake add:(stxLibDir asFilename constructString:'doc/online/french').
   115 "/                ( 'doc/online/english/LICENCE.STX.html' #lib     'doc/online/english' true  '644' )
   141 "/                ( 'doc/online/english/LICENCE.STX.html' #lib     'doc/online/english' true  '644' )
   116     ).
   142     ).
   117 
   143 
   118     installDocFiles ifTrue:[
   144     installDocFiles ifTrue:[
   119         fileSpec := fileSpec , #(
   145         fileSpec := fileSpec , #(
   120                 ( 'doc'                              #lib     nil        false '644' )
   146                 ( 'doc'                                  #lib     nil        false '644' )
   121         ).
   147         ).
   122     ].
   148     ].
   123 
   149 
   124     installSourceFiles ifTrue:[
   150     installSourceFiles ifTrue:[
   125         fileSpec := fileSpec , #(
   151         fileSpec := fileSpec , #(
   126                 ( 'projects/smalltalk/source'                #lib     nil        false '644' )
   152                 ( 'projects/smalltalk/source'                #lib        nil        false '644' )
   127         ).
   153         ).
   128     ].
   154     ].
   129 
   155 
   130     installSTCFiles ifTrue:[
   156     installSTCFiles ifTrue:[
   131         fileSpec := fileSpec , #(
   157         fileSpec := fileSpec , #(
   132                 ( 'stc/stc'                                  #bin     nil              false '755' )
   158                 ( 'stc/stc'                                  #bin        nil              false '755' )
   133                 ( 'rules/stmkmp'                             #bin     nil              false '755' )
   159                 ( 'rules/stmkmp'                             #bin        nil              false '755' )
   134                 ( 'rules/stmkmf'                             #bin     nil              false '755' )
   160                 ( 'rules/stmkmf'                             #bin        nil              false '755' )
   135                 ( 'include'                                  #lib     nil              false '644' )
   161                 ( 'include'                                  #lib        nil              false '644' )
   136                 ( 'configurations'                           #lib     nil              false '644' )
   162                 ( 'configurations'                           #lib        nil              false '644' )
   137                 ( 'configurations/PACKS'                     #lib     'configurations' false '644' )
   163                 ( 'configurations/PACKS'                     #lib        'configurations' false '644' )
   138                 ( 'configurations/my*'                       #lib     'configurations' false '644' )
   164                 ( 'configurations/my*'                       #lib        'configurations' false '644' )
   139                 ( 'configurations/vendor*'                   #lib     'configurations' false '644' )
   165                 ( 'configurations/vendor*'                   #lib        'configurations' false '644' )
   140                 ( 'rules'                                    #lib     nil              false '644' )
   166                 ( 'rules'                                    #lib        nil              false '644' )
   141 
   167 
   142                 ( 'support/VGL/vogl/src/libvogl.*'           #lib     'lib'      false '644' )
   168                 ( 'support/VGL/vogl/src/libvogl.*'           #lib        'lib'       false '644' )
   143                 ( 'support/VGL/vogl/src/*.h'                 #lib     'include'  false '644' )
   169                 ( 'support/VGL/vogl/src/*.h'                 #lib        'include'   false '644' )
   144                 ( 'support/DLD/dld-3.2.5/libdld.*'           #lib     'lib'      false '644' )
   170                 ( 'support/DLD/dld-3.2.5/libdld.*'           #lib        'lib'       false '644' )
   145                 ( 'goodies/persistency/db-1.6/PORT/libdb.*'  #lib     'lib'      false '644' )
   171                 ( 'goodies/persistency/db-1.6/PORT/libdb.*'  #lib        'lib'       false '644' )
   146 
   172 
   147                 ( 'librun/librun.*'                          #lib     'lib'      false '644' )
   173                 ( 'librun/librun.*'                          #libBin     nil      false '644' )
   148                 ( 'libbasic/libbasic.*'                      #lib     'lib'      false '644' )
   174                 ( 'libbasic/libbasic.*'                      #libBin     nil      false '644' )
   149                 ( 'libbasic2/libbasic2.*'                    #lib     'lib'      false '644' )
   175                 ( 'libbasic2/libbasic2.*'                    #libBin     nil      false '644' )
   150                 ( 'libbasic3/libbasic3.*'                    #lib     'lib'      false '644' )
   176                 ( 'libbasic3/libbasic3.*'                    #libBin     nil      false '644' )
   151                 ( 'libhtml/libhtml.*'                        #lib     'lib'      false '644' )
   177                 ( 'libhtml/libhtml.*'                        #libBin     nil      false '644' )
   152                 ( 'libcomp/libcomp.*'                        #lib     'lib'      false '644' )
   178                 ( 'libcomp/libcomp.*'                        #libBin     nil      false '644' )
   153                 ( 'libview/libview.*'                        #lib     'lib'      false '644' )
   179                 ( 'libview/libview.*'                        #libBin     nil      false '644' )
   154                 ( 'libview2/libview2.*'                      #lib     'lib'      false '644' )
   180                 ( 'libview2/libview2.*'                      #libBin     nil      false '644' )
   155                 ( 'libwidg/libwidg.*'                        #lib     'lib'      false '644' )
   181                 ( 'libwidg/libwidg.*'                        #libBin     nil      false '644' )
   156                 ( 'libwidg2/libwidg2.*'                      #lib     'lib'      false '644' )
   182                 ( 'libwidg2/libwidg2.*'                      #libBin     nil      false '644' )
   157                 ( 'libwidg3/libwidg3.*'                      #lib     'lib'      false '644' )
   183                 ( 'libwidg3/libwidg3.*'                      #libBin     nil      false '644' )
   158                 ( 'libsnmp/libsnmp.*'                        #lib     'lib'      false '644' )
   184                 ( 'libsnmp/libsnmp.*'                        #libBin     nil      false '644' )
   159                 ( 'contrib/libPVM/libPVM.*'                  #lib     'lib'      false '644' )
   185                 ( 'contrib/libPVM/libPVM.*'                  #libBin     nil      false '644' )
   160                 ( 'goodies/persistency/libdbase.*'           #lib     'lib'      false '644' )
   186                 ( 'goodies/persistency/libdbase.*'           #libBin     nil      false '644' )
   161                 ( 'libtable/libtable.*'                      #lib     'lib'      false '644' )
   187                 ( 'libtable/libtable.*'                      #libBin     nil      false '644' )
   162                 ( 'libtool/libtool.*'                        #lib     'lib'      false '644' )
   188                 ( 'libtool/libtool.*'                        #libBin     nil      false '644' )
   163                 ( 'libxt/libxt.*'                            #lib     'lib'      false '644' )
   189                 ( 'libxt/libxt.*'                            #libBin     nil      false '644' )
   164                 ( 'librt/librt.*'                            #lib     'lib'      false '644' )
   190                 ( 'librt/librt.*'                            #libBin     nil      false '644' )
   165         ).
   191         ).
   166     ].
   192     ].
   167 
   193 
   168     installGoodyFiles ifTrue:[
   194     installGoodyFiles ifTrue:[
   169         fileSpec := fileSpec , #(
   195         fileSpec := fileSpec , #(
   198         required := entry at:4.
   224         required := entry at:4.
   199 
   225 
   200         dest == #bin ifTrue:[
   226         dest == #bin ifTrue:[
   201             destDir := stxBinDir
   227             destDir := stxBinDir
   202         ] ifFalse:[
   228         ] ifFalse:[
   203             destDir := stxLibDir
   229             dest == #libBin ifTrue:[
       
   230                 destDir := stxLibBinDir
       
   231             ] ifFalse:[
       
   232                 destDir := stxLibDir
       
   233             ]
   204         ].
   234         ].
   205         
   235         
   206         destDir := destDir asFilename.
   236         destDir := destDir asFilename.
   207         subDir notNil ifTrue:[
   237         subDir notNil ifTrue:[
   208             destDir := destDir construct:subDir
   238             destDir := destDir construct:subDir
   370 
   400 
   371 askForDestination
   401 askForDestination
   372     "open a dialog to enter destination directories"
   402     "open a dialog to enter destination directories"
   373 
   403 
   374     |d cm l green dark img
   404     |d cm l green dark img
   375      stxLibDirHolder stxBinDirHolder
   405      stxLibDirHolder stxLibBinDirHolder stxBinDirHolder
   376      installDocHolder installSourceHolder installSTCHolder installGoodiesHolder
   406      installDocHolder installSourceHolder installSTCHolder installGoodiesHolder
   377      binMegabytes libMegabytes
   407      binMegabytes libMegabytes
   378     |
   408     |
   379 
   409 
   380     binMegabytes := 10.
   410     binMegabytes := 10.
   381     libMegabytes := 10.
   411     libMegabytes := 10.
   382 
   412 
   383     LastLibDir isNil ifTrue:[
   413     LastLibDir isNil ifTrue:[
   384         LastLibDir := '/usr/local/lib/smalltalk'
   414         LastLibDir := '/usr/local/lib/smalltalk'
   385     ].
   415     ].
       
   416     LastLibBinDir isNil ifTrue:[
       
   417         LastLibBinDir := '/usr/local/lib'
       
   418     ].
   386     LastBinDir isNil ifTrue:[
   419     LastBinDir isNil ifTrue:[
   387         LastBinDir := '/usr/local/bin'
   420         LastBinDir := '/usr/local/bin'
   388     ].
   421     ].
   389 
   422 
   390     stxLibDirHolder := LastLibDir asValue.
   423     stxLibDirHolder := LastLibDir asValue.
       
   424     stxLibBinDirHolder := LastLibBinDir asValue.
   391     stxBinDirHolder := LastBinDir asValue.
   425     stxBinDirHolder := LastBinDir asValue.
       
   426 
   392     installDocHolder := true asValue.
   427     installDocHolder := true asValue.
   393     installSourceHolder := true asValue.
   428     installSourceHolder := true asValue.
   394     installSTCHolder := true asValue.
   429     installSTCHolder := true asValue.
   395     installGoodiesHolder := true asValue.
   430     installGoodiesHolder := true asValue.
   396 
   431 
   430         from:0.0 to:1.0 separateAtX:0.25
   465         from:0.0 to:1.0 separateAtX:0.25
   431         nameAs:'binaryBox'.
   466         nameAs:'binaryBox'.
   432 
   467 
   433     (d componentAt:'binaryBox.label') backgroundColor:dark; foregroundColor:Color white.
   468     (d componentAt:'binaryBox.label') backgroundColor:dark; foregroundColor:Color white.
   434 
   469 
   435     cm := ComboBoxView on:stxLibDirHolder.
   470     cm := ComboBoxView on:stxLibBinDirHolder.
   436     cm list:self defaultLibDirs.
   471     cm list:self defaultLibBinDirs.
   437     d 
   472     d 
   438         addLabelledField:cm 
   473         addLabelledField:cm 
   439         label:(resources string:'libraries') 
   474         label:(resources string:'libraries') 
   440         adjust:#left 
   475         adjust:#left 
   441         tabable:true 
   476         tabable:true 
   442         from:0.0 to:1.0 separateAtX:0.25
   477         from:0.0 to:1.0 separateAtX:0.25
       
   478         nameAs:'libraryBinBox'.
       
   479 
       
   480     (d componentAt:'libraryBinBox.label') backgroundColor:dark; foregroundColor:Color white.
       
   481 
       
   482     cm := ComboBoxView on:stxLibDirHolder.
       
   483     cm list:self defaultLibDirs.
       
   484     d 
       
   485         addLabelledField:cm 
       
   486         label:(resources string:'help files') 
       
   487         adjust:#left 
       
   488         tabable:true 
       
   489         from:0.0 to:1.0 separateAtX:0.25
   443         nameAs:'libraryBox'.
   490         nameAs:'libraryBox'.
   444 
   491 
   445     (d componentAt:'libraryBox.label') backgroundColor:dark; foregroundColor:Color white.
   492     (d componentAt:'libraryBox.label') backgroundColor:dark; foregroundColor:Color white.
   446 
   493 
   447     d addVerticalSpace.
   494     d addVerticalSpace.
   483         labelView foregroundColor:Color white backgroundColor:dark.
   530         labelView foregroundColor:Color white backgroundColor:dark.
   484 
   531 
   485     d addVerticalSpace.
   532     d addVerticalSpace.
   486     d addHorizontalLine.
   533     d addHorizontalLine.
   487 
   534 
   488     d addAbortButton; addOkButtonLabelled:(resources string:'install').
   535     d addHelpButtonFor:'STXInstaller/installHelp.html';
       
   536       addAbortButton; 
       
   537       addOkButtonLabelled:(resources string:'install').
   489     d extent:400@300.
   538     d extent:400@300.
   490 
   539 
   491     d allViewBackground:dark.
   540     d allViewBackground:dark.
   492 
   541 
   493     d openAtCenter.
   542     d openAtCenter.
   494     d accepted ifTrue:[
   543     d accepted ifTrue:[
   495         stxLibDir := LastLibDir := stxLibDirHolder value.
   544         stxLibDir := LastLibDir := stxLibDirHolder value.
       
   545         stxLibBinDir := LastLibBinDir := stxLibBinDirHolder value.
   496         stxBinDir := LastBinDir := stxBinDirHolder value.
   546         stxBinDir := LastBinDir := stxBinDirHolder value.
   497         installDocFiles := installDocHolder value.
   547         installDocFiles := installDocHolder value.
   498         installSourceFiles := installSourceHolder value.
   548         installSourceFiles := installSourceHolder value.
   499         installSTCFiles := installSTCHolder value.
   549         installSTCFiles := installSTCHolder value.
   500         installGoodyFiles := installGoodiesHolder value.
   550         installGoodyFiles := installGoodiesHolder value.