[squeak-dev] The Trunk: SMLoader-mt.100.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 18 12:58:38 UTC 2023
Marcel Taeumel uploaded a new version of SMLoader to project The Trunk:
http://source.squeak.org/trunk/SMLoader-mt.100.mcz
==================== Summary ====================
Name: SMLoader-mt.100
Author: mt
Time: 18 January 2023, 1:58:37.522866 pm
UUID: af2b23be-b12e-df41-88fc-896be26636af
Ancestors: SMLoader-ct.99
withCRs translated -> translated withCRs
=============== Diff against SMLoader-ct.99 ===============
Item was changed:
----- Method: SMLoaderPlus>>cachePackageReleaseAndOfferToCopy (in category 'actions') -----
cachePackageReleaseAndOfferToCopy
"Cache package release, then offer to copy it somewhere.
Answer the chosen file's location after copy,
or the cache location if no directory was chosen."
| release installer newDir newName newFile oldFile oldName |
release := self selectedPackageOrRelease.
release isPackageRelease ifFalse: [ self error: 'Should be a package release!!' translated].
installer := SMInstaller forPackageRelease: release.
[Project uiManager informUser: ('Caching {1}' translated format: {release}) during: [installer cache]] on: Error do: [:ex |
| msg |
msg := ex messageText ifNil: [ex asString].
+ self informException: ex msg: ('Error occurred during download:\\{1}' translated withCRs format: {msg}).
- self informException: ex msg: ('Error occurred during download:\\{1}' withCRs translated format: {msg}).
^nil ].
installer isCached ifFalse: [self inform: 'Download failed, see transcript for details' translated. ^nil].
oldName := installer fullFileName.
newDir := Project uiManager chooseDirectoryFrom: installer directory.
newDir ifNil: [ ^oldName ].
newDir = installer directory ifTrue: [ ^oldName ].
newName := newDir fullNameFor: installer fileName.
newFile := FileStream newFileNamed: newName.
newFile ifNil: [ ^oldName ].
newFile binary.
oldFile := FileStream readOnlyFileNamed: oldName.
oldFile ifNil: [ ^nil ].
oldFile binary.
[[ newDir copyFile: oldFile toFile: newFile ] ensure: [ oldFile close. newFile close ]] on: Error do: [ :ex | ^oldName ].
^newName!
Item was changed:
----- Method: SMLoaderPlus>>installPackageRelease: (in category 'private') -----
installPackageRelease: aRelease
"Install a package release. The cache is used."
| myRelease installer |
aRelease isCompatibleWithCurrentSystemVersion ifFalse:
[(self confirm:
('The package you are about to install is not listed as being compatible with your image version ({1}), so the package may not work properly.
Do you still want to proceed with the install?' translated format: {SystemVersion current majorMinorVersion}))
ifFalse: [^ self]].
myRelease := self installedReleaseOfMe.
installer := SMInstaller forPackageRelease: aRelease.
[Project uiManager
informUser: ('Downloading {1}' translated format: {aRelease}) during:
[installer download];
informUser: ('Installing {1}' translated format: {aRelease}) during:
[installer install.
myRelease = self installedReleaseOfMe
ifFalse: [self reOpen]
ifTrue: [self noteChanged]]
] on: Error do: [:ex |
| msg |
msg := ex messageText ifNil:[ex asString].
+ self informException: ex msg: ('Error occurred during install:\\{1}' translated withCRs format: {msg})].!
- self informException: ex msg: ('Error occurred during install:\\{1}' withCRs translated format: {msg})].!
Item was changed:
----- Method: SMLoaderPlus>>upgradeInstalledPackages (in category 'actions') -----
upgradeInstalledPackages
"Tries to upgrade all installed packages to the latest published release for this
version of Squeak. So this is a conservative approach."
| installed old myRelease toUpgrade info |
installed := map installedPackages.
old := map oldPackages.
old isEmpty ifTrue: [
^self inform: ('All {1} installed packages are up to date.' translated format: {installed size})].
toUpgrade := map upgradeableAndOldPackages.
toUpgrade isEmpty ifTrue: [
^self inform: ('None of the {1} old packages of the {2} installed can be automatically upgraded. You need to upgrade them manually.' translated format: {old size. installed size})].
info := old size < toUpgrade size ifTrue: [
+ 'Of the {1} old packages only {2} can be upgraded. The following packages will not be upgraded:\\{3}' translated withCRs format: {old size. toUpgrade size. String streamContents: [:s | (old removeAll: toUpgrade; yourself)
- 'Of the {1} old packages only {2} can be upgraded. The following packages will not be upgraded:\\{3}' withCRs translated format: {old size. toUpgrade size. String streamContents: [:s | (old removeAll: toUpgrade; yourself)
do: [:p | s nextPutAll: p nameWithVersionLabel; cr]]}]
ifFalse: ['All old packages upgradeable.' translated].
(self confirm: ('{1}\\About to upgrade the following packages:\\{2}\\Proceed?' translated format: {info. String streamContents: [:s | toUpgrade do: [:p | s nextPutAll: p nameWithVersionLabel; cr]]})) ifTrue: [
myRelease := self installedReleaseOfMe.
[Project uiManager informUser: 'Upgrading installed packages' translated during: [
map upgradeOldPackages.
self inform: ('{1} packages successfully upgraded.' translated format: {toUpgrade size}).
myRelease = self installedReleaseOfMe
ifFalse: [self reOpen]
ifTrue: [self noteChanged]]
] on: Error do: [:ex |
+ self informException: ex msg: ('Error occurred when upgrading old packages:\\{1}' translated withCRs format: {ex messageText})]]!
- self informException: ex msg: ('Error occurred when upgrading old packages:\\{1}' withCRs translated format: {ex messageText})]]!
Item was changed:
----- Method: SMLoaderPlus>>upgradeInstalledPackagesConfirm: (in category 'private') -----
upgradeInstalledPackagesConfirm: confirmEach
"Tries to upgrade all installed packages to the latest published release for
this version of Squeak. If confirmEach is true we ask for every
upgrade. "
| installed old myRelease toUpgrade info |
installed := map installedPackages.
old := map oldPackages.
old isEmpty
ifTrue: [^ self inform: ('All {1} installed packages are up to date.' translated format: {installed size})].
toUpgrade := map upgradeableAndOldPackages.
toUpgrade isEmpty
ifTrue: [^ self inform: ('None of the {1} old packages of the {1} installed can be automatically upgraded. You need to upgrade them manually.' translated format: {old size. installed size})].
info := old size < toUpgrade size
+ ifTrue: [('Of the {1} old packages only {2} can be upgraded.\\The following packages will not be upgraded:\\{3}' translated withCRs format: {old size. toUpgrade size. String
- ifTrue: [('Of the {1} old packages only {2} can be upgraded.\\The following packages will not be upgraded:\\{3}' withCRs translated format: {old size. toUpgrade size. String
streamContents: [:s | (old removeAll: toUpgrade;
yourself)
do: [:p | s nextPutAll: p nameWithVersionLabel;
cr]]})]
ifFalse: ['All old packages upgradeable.' translated].
+ (self confirm: ('{1}\\About to upgrade the following packages:\\{2}\\Proceed?' translated withCRs format: {info. String
- (self confirm: ('{1}\\About to upgrade the following packages:\\{2}\\Proceed?' withCRs translated format: {info. String
streamContents: [:s | toUpgrade
do: [:p | s nextPutAll: p nameWithVersionLabel;
cr]]}))
ifTrue: [myRelease := self installedReleaseOfMe.
[Project uiManager informUser: 'Upgrading installed packages' translated during:
[confirmEach
ifTrue: [map
upgradeOldPackagesConfirmBlock: [:p | self confirm: ('Upgrade {1} to {2}?' translated format: {p installedRelease packageNameWithVersion. (p lastPublishedReleaseForCurrentSystemVersionNewerThan: p installedRelease) listName})]]
ifFalse: [map upgradeOldPackages].
self inform: ('{1} packages successfully processed.' translated format: {toUpgrade size}).
myRelease = self installedReleaseOfMe
ifTrue: [self noteChanged]
ifFalse: [self reOpen]]]
on: Error
+ do: [:ex | self informException: ex msg: ('Error occurred when upgrading old packages:\\{1}' translated withCRs format: {ex messageText})]]!
- do: [:ex | self informException: ex msg: ('Error occurred when upgrading old packages:\\{1}' withCRs translated format: {ex messageText})]]!
More information about the Squeak-dev
mailing list
|