A new version of Installer-Core was added to project Installer: http://www.squeaksource.com/Installer/Installer-Core-kph.320.mcz
==================== Summary ====================
Name: Installer-Core-kph.320 Author: kph Time: 2 July 2009, 10:39:02 pm UUID: 6a214657-1983-4c1d-99ad-d215b02ecbe7 Ancestors: Installer-Core-damiencassou.319
Fix to loading of multiple packages
=============== Diff against Installer-Core-damiencassou.319 ===============
Item was added: + ----- Method: InstallerMonticello>>mcDetectFileBlock: (in category 'monticello') ----- + mcDetectFileBlock: pkg + + pkg isString ifTrue: [ ^ [ :aFile | aFile beginsWith: pkg ] ]. + + (pkg isKindOf: Array) + ifTrue: [ ^ [ :aFile | (pkg detect: [ :item | aFile beginsWith: item ] ifNone: [ false ]) ~= false ] ]. + + pkg isBlock ifTrue: [ ^ pkg ]. + + !
Item was changed: ----- Method: InstallerMonticello>>mcThing (in category 'monticello') ----- mcThing
| loader files fileToLoad version count |
loader := self classMCVersionLoader new. + count := 0. files := nil. + self logCR: 'reading ', mc description, '...'. - 1 to: self packages size do: [ :n | - - self logCR: 'finding ', self package asString, '...'. "several attempts to read files - repository readableFileNames sometimes fails" + [ count := count + 1. + (files = nil) and:[ count < 5 ] ] + whileTrue: [files := mc readableFileNames asSortedCollection: self mcSortFileBlock ]. + files ifNil: [ Warning signal: 'Repository not readable: ', mc description. ^ nil ]. + + self packages do: [ :pkg | - count := 0. fileToLoad := nil. - - [count := count + 1. - (fileToLoad = nil) and:[ count < 5 ] ] - whileTrue: [ - files := mc readableFileNames asSortedCollection: self mcSortFileBlock. - fileToLoad := files detect: self mcDetectFileBlock ifNone: [ nil ]. - ]. - - fileToLoad ifNil: [ Warning signal: 'Package: ', self package ,' not found in repository: ', mc description. ^ nil ]. - version := mc versionFromFileNamed: fileToLoad. - (version isKindOf: MCConfiguration) - ifTrue: [ ^ version ] - ifFalse:[ - MCRepositoryGroup default addRepository: self normalizedRepository. - version workingCopy repositoryGroup addRepository: self normalizedRepository. - loader addVersion: version]. - self log: ' found ', version fileName, '...'.
+ self log: 'finding ', pkg asString, '...'. + + fileToLoad := files detect: (self mcDetectFileBlock: pkg) ifNone: [ nil ]. + + version := mc versionFromFileNamed: fileToLoad. + (version isKindOf: MCConfiguration) + ifTrue: [ ^ version ] + ifFalse:[ + MCRepositoryGroup default addRepository: self normalizedRepository. + version workingCopy repositoryGroup addRepository: self normalizedRepository. + loader addVersion: version ]. + + self logCR: ' found ', version fileName, '...'. - packages removeFirst. ].
^ loader!
Item was removed: - ----- Method: InstallerMonticello>>mcDetectFileBlock (in category 'monticello') ----- - mcDetectFileBlock - - self package isString ifTrue: [ ^ [ :aFile | aFile beginsWith: self package ] ]. - - (self package isKindOf: Array) - ifTrue: [ ^ [ :aFile | (self package detect: [ :item | aFile beginsWith: item ] ifNone: [ false ]) ~= false ] ]. - - self package isBlock ifTrue: [ ^ self package ]. - - !
packages@lists.squeakfoundation.org