Is there a chance to get this methods (or any better versions of them) added to Metacello?

>>extractZip: fileRef in: dst
������ " If fileRef is a ZIP archive, uncompress its contents in dst and delete it "

������ | zipArchive |
������ (fileRef fullName endsWith: '.zip')
������ ������ ifFalse: [ ^ self ].
������ zipArchive := ZipArchive new.
������ [ zipArchive
������ ������ readFrom: fileRef fullName;
������ ������ extractAllTo: dst ]
������ ������ ensure: [ zipArchive close ].
������ fileRef delete


>>extractGZip: fileRef in: dst
������ " If fileRef is a ZIP archive, uncompress its contents in dst and delete it "

������ | unzipped |
������ (fileRef fullName endsWith: '.gz')
������ ������ ifFalse: [ ^ self ].
������ unzipped := GZipReadStream unzip: fileRef basename to: dst.
������ (Smalltalk hasClassNamed: #OSProcess)
������ ������ ifTrue: [
������ ������ ������ (Smalltalk at: #OSProcess) thisOSProcess waitForCommandOutput: 'tar xvf ' , unzipped asFileReference fullName.
������ ������ ������ fileRef delete.
������ ������ ������ unzipped asFileReference delete ]

>>uncompress: fileRef
������ " Private - Uncompress fileRef to the current working directory "

������ | dst |
������ dst := FileSystem workingDirectory.
������ self extractZip: fileRef in: dst.
������ self extractGZip: fileRef in: dst.

>>downloadResourcesFrom: urlString
������ " Private - Download files from urlString "

������ ^ [ ZnEasy get: urlString ]
������ ������ on: ZnEntityTooLarge
������ ������ do: [ : ex | ex resume�� ].


I use them to download external resources for my projects as follows:

First I add a #preLoadDoIt: send in my baseline:

������ spec for: #'common' do: [
������ ������ spec blessing: #'baseline'.
������ ������ spec preLoadDoIt: #preLoad.
���������������� ....

>>preLoad

������ | url fileRef response |

������ self logCr: '====== Downloading my resource files...'.
������ url := self platformFilesUrl asZnUrl.
������ fileRef := FileSystem disk workingDirectory / url pathSegments last.
������ (response := self downloadResourcesFrom: url) isSuccess
������ ������ ifTrue: [
������ ������ ������ self logCr: '====== Writing resource file...'.
������ ������ ������ fileRef writeStreamDo: [ : stream | stream nextPutAll: response contents ] ]
������ ������ ifFalse: [ self error: 'Cannot download data files' ].
������ self logCr: '====== Uncompressing files...'.
������ self uncompress: fileRef.

Hern��n