| pkgs latest verName current fn version | #('http://source.impara.de/mc' 'http://source.impara.de/Tweak') do: [:url | MCRepositoryGroup default addRepository: (MCHttpRepository location: url user: '' password: '')]. pkgs := #('TweakMC' 'Scripting-Preload' 'Scripting' 'UIManager' 'Tweak-Preload' 'Tweak-Hacks' 'Tweak-Text-HTML' 'Tweak-Compiler' 'Tweak-Core-Proto' 'Tweak-Core-Object' 'Tweak-Costume' 'Tweak-Basic' 'Tweak-LastFixes' 'Tweak-Maker' 'Tweak-Platforms' 'Tweak-Widgets' 'Tweak-Morphic' 'Tweak-Tiles' 'Tweak-Tools' 'Tweak-Skins' 'Tweak-Painter' 'Tweak-Updates' 'Tweak-DevTools' 'Tweak-Explain' 'Tweak-ProjectBuilder'). latest := Dictionary new. pkgs do: [: p | latest at: p put: #(0 repo fName)]. MCRepositoryGroup default repositories do: [:repo | repo readableFileNames do: [:fName | | pkgName pkgVersion | verName := repo versionNameFromFileName: fName. pkgName := verName copyUpToLast: $-. (latest includesKey: pkgName) ifTrue: [ pkgVersion := (verName copyAfterLast: $.) asNumber. pkgVersion >= (latest at: pkgName) first ifTrue: [latest at: pkgName put: {pkgVersion. repo. fName}]]]]. pkgs do: [: p | current := latest at: p. repo := current second. fn := current last. version := repo versionFromFileNamed: fn. version workingCopy repositoryGroup addRepository: repo. version load. "or merge" ]