Friday, November 16, 2007

My Image Startup script

Following a previous post some people asked me how my Image Startup script looks like. Well - here it is. I run this script in a clean image and it sets all the correct bits and pieces and loads all necessary packages.


Transcript clear.

"Set personal Settings"
(SmalltalkSystem current)
autoFormatMethodSource: true;
showSplashAtStartup: false.
SmalltalkSystem current tipOfTheDayClass
showTipsAtStartup: false.
SmalltalkSystem current
workspaceShellClass variableTips: true.
"Connect STS Repositry"
stsRepositryPath := 'S:\Dolphin Smalltalk X6\STS Repositry'.
StsManager startUpOn: stsRepositryPath.
"Backup Repositry and reorganize"
stsBackupPathStream := ReadWriteStream
on: String new.
stsBackupPathStream
nextPutAll: stsRepositryPath;
nextPutAll: '/Repository.BACKUP_'.
Date today
printOn: stsBackupPathStream
format: 'yyyyMMdd'.
Time now
printOn: stsBackupPathStream
format: 'HHmmss'.
(StsManager current databaseConnection)
createBackupOn: stsBackupPathStream contents;
reorganize.
"Install Restore as this can't be loaded from STS"
Package manager install: 'S:\Dolphin Smalltalk X6\Solutions Software\ReStore120_D6\SSW ReStore MVP.pac'.
"Packages to ignore"
ignorePackageNames := #('US ActiveX' 'US Speedometer Control').
"Find all US Packages to be loaded"
loadPackageNames := ((StsManager
current getAllPackageNames
select:
[:eachPackageName |
eachPackageName beginsWith: 'US'])
reject:
[:eachPackageName |
ignorePackageNames
includes: eachPackageName])
asOrderedCollection.
"Load Packages and Prerequsisites"
[loadPackageNames notEmpty] whileTrue:
[currentPackageName := loadPackageNames
removeFirst.
stsPackage := (StsManager current
getPackageEditionsFor: currentPackageName)
first.
prerequisitePackageNames := (stsPackage
prerequisiteNames reject:
[:each |
(ignorePackageNames includes: each)
or:
[Package manager
includesPackageNamed: each]])
asOrderedCollection.
prerequisitePackageNames isEmpty
ifTrue:
[stsPackage isLoaded
ifFalse: [stsPackage load]]
ifFalse:
[loadPackageNames := loadPackageNames
, prerequisitePackageNames.
loadPackageNames
addLast: currentPackageName]]

No comments: