SystemOrganization addCategory: #'Helvetia-Loader'! Object subclass: #CHHelvetiaLoader instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Helvetia-Loader'! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 5/18/2009 14:59'! defineDesign World color: Color white. UIThemeStandardSqueak beCurrent. World submorphs do: [ :each | each isSketchMorph ifTrue: [ each delete ] ]! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 5/18/2009 14:59'! defineSettings Preferences enable: #scrollBarsNarrow. Preferences disable: #scrollBarsWithoutMenuButton. Preferences disable: #useNewDiffToolsForMC! ! !CHHelvetiaLoader class methodsFor: 'initialization' stamp: 'lr 5/19/2009 10:23'! initialize self validateInstallation. self packages do: [ :each | each size = 1 ifTrue: [ self compilerClass evaluate: each first for: self logged: false ] ifFalse: [ each first isSymbol ifFalse: [ self load: each first version: each second ] ifTrue: [ (Preferences preferenceAt: each first) preferenceValue: each second ] ] ] displayingProgress: 'Loading Helvetia'! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 5/18/2009 15:35'! load: anUrlString version: aString | repository group version versions | ProgressNotification signal: '' extra: aString. repository := MCHttpRepository location: anUrlString user: '' password: ''. group := MCRepositoryGroup default. (group includes: repository) ifFalse: [ group addRepository: repository ] ifTrue: [ repository := group repositories detect: [ :each | each = repository] ]. repository cacheAllFileNamesDuring: [ versions := repository allVersionNames asArray select: [ :each | each beginsWith: aString ]. versions sort: [ :a :b | (a copyAfterLast: $.) asNumber < (b copyAfterLast: $.) asNumber ]. repository versionReaderForFileNamed: versions last , '.mcz' do: [ :reader | version := reader version. version isNil ifTrue: [ self error: 'Unable to load ' , aString printString ]. [ [ version load ] on: UndeclaredVariableWarning do: [ :err | err resume: true ] ] on: Notification do: [ :err | err resume ]. version workingCopy repositoryGroup addRepository: repository ] ]! ! !CHHelvetiaLoader class methodsFor: 'initialization' stamp: 'lr 9/24/2009 20:36'! packages ^ #( " refactoring tools " ('http://www.squeaksource.com/AST' 'AST-damiencassou.166') ('http://www.squeaksource.com/RefactoringEngine' 'Refactoring-Core-lr') ('http://www.squeaksource.com/RefactoringEngine' 'Refactoring-Spelling-lr') ('http://source.lukas-renggli.ch/omnibrowser/' 'VB-Regex-sd.9') " smacc " ('http://www.squeaksource.com/SmaccDevelopment' 'SmaCC-lr.13') ('http://www.squeaksource.com/SmaccDevelopment' 'SmaCCDev-ms.19') " new compiler " ('http://www.squeaksource.com/AST/' 'NewParser-marcus.denker.7') ('http://www.squeaksource.com/NewCompiler/' 'NewCompiler-marcus.denker.290') (#compileBlocksAsClosures false) (#compileUseNewCompiler false) " omnibrowser " ('http://source.lukas-renggli.ch/omnibrowser/' 'OmniBrowser') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Standard') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Morphic') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Refactory') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Regex') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Tools') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Shout') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-SUnitIntegration') ('ToolSet default: StandardToolSet') " shout and ecompletion" ('http://source.lukas-renggli.ch/unsorted/' 'RoelTyper-rw.60') ('http://source.lukas-renggli.ch/unsorted/' 'Shout-lr.75') ('http://source.lukas-renggli.ch/unsorted/' 'ECompletion-lr.95') ('http://source.lukas-renggli.ch/unsorted/' 'ECompletionOmniBrowser-dc.4') " actual tools " ('http://source.lukas-renggli.ch/petit' 'PetitParser') ('http://source.lukas-renggli.ch/helvetia' 'QuasiQuote') ('http://source.lukas-renggli.ch/helvetia' 'Helvetia-Core') (#compileUseNewCompiler true) ('http://source.lukas-renggli.ch/helvetia' 'Cutie-Helvetia') ('http://source.lukas-renggli.ch/helvetia' 'LanguageBoxes') ('2 timesRepeat: [ LBSmalltalkGrammar recompileAll ]') (#compileUseLanguageBoxes true) ('http://source.lukas-renggli.ch/helvetia' 'Cutie-LanguageBoxes') " settings " ('self defineDesign') ('self defineSettings'))! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 5/19/2009 10:20'! validateInstallation (SystemVersion current version beginsWith: 'Pharo') ifFalse: [ self notify: 'Helvetia might not work with this image: ' , SystemVersion current version , '. Please consider using a Pharo image.' ]. (SystemVersion current highestUpdate <= 10263) ifFalse: [ self notify: 'Helvetia might not work with this image: ' , SystemVersion current version , '. Please consider using a non-closure Pharo image.' ]! ! CHHelvetiaLoader initialize!