Remerge enhancement The issue with it that I previously encountered has resolved itself, presumably with progression of upstream packages.
ADD
src/PharoLauncher-Core.package/PhLAbstractTemplate.class/class/metaInfoFileName.st
+accessing
+metaInfoFileName
+ ^ 'meta-inf.ston'
\ No newline at end of file

MODIFY
src/PharoLauncher-Core.package/PhLAbstractTemplate.class/instance/extractTo.named..st
src/PharoLauncher-Core.package/PhLAbstractTemplate.class/instance/extractTo.named..st
@@ -5,4 +5,5 @@ extractTo: aDirectory named: aString
| extractionDirectory |
extractionDirectory := self extractZipArchive: self zipArchive to: aDirectory.
self relocateImageFilesFrom: extractionDirectory to: aDirectory withName: aString.
- extractionDirectory deleteAll
\ No newline at end of file
+ extractionDirectory deleteAll.
+ self generateMetaInformationTo: aDirectory
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLAbstractTemplate.class/instance/generateMetaInformationTo..st
+actions
+generateMetaInformationTo: aDirectory
+ | metainf |
+
+ metainf := Dictionary new.
+ metainf at: 'template' put: self.
+
+ aDirectory / (PhLAbstractTemplate metaInfoFileName)
+ writeStreamDo: [ : stream | stream nextPutAll: (STON toString: metainf) ]
\ No newline at end of file

MODIFY
src/PharoLauncher-Core.package/PhLCommand.class/README.md
src/PharoLauncher-Core.package/PhLCommand.class/README.md
I'm the abstract superclass of all commands. I implement the command pattern. My main entry methods are #execute and #isApplicable.
-I rely on the existence of a context (instance of PhLContext) to query and change my environment.
\ No newline at end of file
+I rely on the existence of a context (instance of PhLCommandContext) to query and change my environment.
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLImage.class/instance/file.st
+accessing
+file
+ ^file
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/README.md
+Refresh the currently selected image.
+It will first drop the current local image and fetch a fres version of the template. The name of the local image will not be updated.
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/class/icon.st
+accessing
+icon
+ ^ Smalltalk ui icons refreshIcon
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/class/title.st
+accessing
+title
+ ^ 'Refresh image'
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/instance/askConfirmation.st
+private
+askConfirmation
+ | confirmMessage |
+
+ confirmMessage := 'Are you sure you want to refresh this image?' , Character cr asString,
+ 'It will override the existing image and you may loose changes.'.
+ ^ context newConfirmation
+ message: (confirmMessage withNoLineLongerThan: 60) , '?';
+ confirm.
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/instance/execute.st
+action
+execute
+ self askConfirmation
+ ifTrue: [ context selectedImages
+ do: [ :image | | template |
+ template := self templateFor: image.
+ context imageRepository
+ deleteImages: { image };
+ extractTemplate: template to: image name ]
+ ]
+

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/instance/isApplicable.st
+testing
+isApplicable
+ ^ context hasAtLeastOneImageSelected
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/instance/templateFor..st
+private
+templateFor: anImage
+ | metainf metainfFile |
+
+ metainfFile := anImage file parent / (PhLAbstractTemplate metaInfoFileName).
+ metainfFile readStreamDo: [ :stream | metainf := STON fromStream: stream ].
+ ^ metainf at: #template.
\ No newline at end of file

ADD
src/PharoLauncher-Core.package/PhLRefreshImageCommand.class/properties.json
+{
+ "commentStamp" : "<historical>",
+ "super" : "PhLImageCommand",
+ "category" : "PharoLauncher-Core-Commands",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [ ],
+ "name" : "PhLRefreshImageCommand",
+ "type" : "normal"
+}
\ No newline at end of file

Remerge enhancement #12457. The issue with it that I previously encountered has resolved itself, presumably with progression of upstream packages.