Releases: santisq/PSCompression
v2.1.0
What's Changed
-
Code improvements.
-
Instance methods
.OpenRead()
and.OpenWrite()
moved fromZipEntryFile
toZipEntryBase
. -
Adds support to operate from input Stream. This means you can now:
-
List entries:
PS ..\PSCompression> $uri = 'https://www.powershellgallery.com/api/v2/package/PSCompression' PS ..\PSCompression> Invoke-WebRequest $uri | Get-ZipEntry | Select-Object -First 5 Directory: / Type LastWriteTime CompressedSize Size Name ---- ------------- -------------- ---- ---- Archive 11/6/2024 10:29 PM 227.00 B 785.00 B [Content_Types].xml Archive 11/6/2024 10:27 PM 516.00 B 2.50 KB PSCompression.Format.ps1xml Archive 11/6/2024 10:29 PM 598.00 B 1.58 KB PSCompression.nuspec Archive 11/6/2024 10:27 PM 1.66 KB 5.45 KB PSCompression.psd1 Directory: /_rels/ Type LastWriteTime CompressedSize Size Name ---- ------------- -------------- ---- ---- Archive 11/6/2024 10:29 PM 276.00 B 507.00 B .rels
-
Read their content:
PS ..\PSCompression> $entry = Invoke-WebRequest $uri | Get-ZipEntry -Include *.psd1 PS ..\PSCompression> $entry | Get-ZipEntryContent -Raw | Invoke-Expression Name Value ---- ----- FunctionsToExport {} PowerShellVersion 5.1 GUID c63aa90e-ae64-4ae1-b1c8-456e0d13967e FormatsToProcess {PSCompression.Format.ps1xml} RootModule bin/netstandard2.0/PSCompression.dll Author Santiago Squarzon ModuleVersion 2.0.10 CompanyName Unknown PrivateData {[PSData, System.Collections.Hashtable]} Description Zip and GZip utilities for PowerShell! Copyright (c) Santiago Squarzon. All rights reserved. CmdletsToExport {Get-ZipEntry, Get-ZipEntryContent, Set-ZipEntryContent, Remove-ZipEntry…} VariablesToExport {} AliasesToExport {gziptofile, gzipfromfile, gziptostring, gzipfromstring…} RequiredAssemblies {System.IO.Compression, System.IO.Compression.FileSystem}
-
Extract them:
PS ..\PSCompression> $file = $entry | Expand-ZipEntry -PassThru PS ..\PSCompression> $file Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/6/2024 10:27 PM 5584 PSCompression.psd1 PS ..\PSCompression> Get-Content $file.FullName -TotalCount 3 # # Module manifest for module 'PSCompression' #
Other operations are not supported and will throw an error:
PS ..\PSCompression> $entry | Remove-ZipEntry Remove-ZipEntry: The operation is not supported for entries created from input Stream.
-
Full Changelog: v2.0.10...v2.1.0
v2.0.10
What's Changed
- Fix
EncodingTransformation
forEncoding
andint
instances wrapped inPSObject
by @santisq in #37. Same issue as #34 but whenEncoding
andint
instances are wrapped inPSObject
:
$utf8 = [System.Text.Encoding]::UTF8 | Write-Output
Get-ZipEntry .\test.zip | Get-ZipEntryContent -Encoding $utf8
# Get-ZipEntryContent: Cannot process argument transformation on parameter 'Encoding'.
# Could not convert input 'System.Text.UTF8Encoding+UTF8EncodingSealed' to a valid Encoding object.
$utf8 = [System.Text.Encoding]::UTF8.CodePage | Write-Output
Get-ZipEntry .\test.zip | Get-ZipEntryContent -Encoding $utf8
# Get-ZipEntryContent: Cannot process argument transformation on parameter 'Encoding'.
# Could not convert input '65001' to a valid Encoding object.
Full Changelog: v2.0.9...v2.0.10
v2.0.9
What's Changed
$utf8 = Write-Output utf8
Get-ZipEntry .\test.zip | Get-ZipEntryContent -Encoding $utf8
# Get-ZipEntryContent: Cannot process argument transformation on parameter 'Encoding'.
# Could not convert input 'utf8' to a valid Encoding object.
Full Changelog: v2.0.8...v2.0.9
v2.0.8
What's Changed
New-ZipEntry
- Use file's.FullName
if no-EntryPath
is provided by @santisq in #33:- Makes
-EntryPath
no longer Mandatory onFile
ParameterSet. When no-EntryPath
is specified the cmdlet will use the-SourcePath
in it's normalized form. - Added Pester tests and updated docs to reflect this change.
- Updated all docs Syntax section to properly reflect Mandatory parameters.
- Makes
Full Changelog: v2.0.7...v2.0.8
v2.0.7
What's Changed
-
Adds
-Exclude
Parameter toCompress-ZipArchive
by @santisq in #31. This parameter allows to exclude items from source. For example, if you wanted to compress thepath
folder excluding any file having the.xyz
extension and any folder namedtest
(including all its child items), you could do:Compress-ZipArchive .\path -Destination myPath.zip -Exclude *.xyz, *\test\*
Full Changelog: v2.0.6...v2.0.7
v2.0.6
What's Changed
- Fixed parameter names in
Compress-ZipArchive
documentation by @martincostello in #25 - Update to CI pipeline to use
codecov-action@v4
- Fixed
coverlet
support for Linux runner tests
New Contributors
- @martincostello made their first contribution in #25
Full Changelog: v2.0.5...v2.0.6
v2.0.5
v2.0.4
What's Changed
- Added command
Rename-ZipEntry
by @santisq in #22. - Fixed a bug that would prevent using the cmdlets in a remote
PSSession
or in a different Runspace or with aPSDrive
, details in #21.
Thanks @mattcargile for submitting the issue.
Breaking Changes
-
ZipEntryBase
Type:- Renamed Property
EntryName
toName
. - Renamed Property
EntryRelativePath
toRelativePath
. - Renamed Property
EntryType
toType
. - Renamed Method
RemoveEntry()
toRemove()
.
- Renamed Property
-
ZipEntryFile
Type:- Added Property
Extension
. - Added Property
BaseName
. - Added Property
CompressionRatio
.
- Added Property
-
ZipEntryDirectory
Type:.Name
Property now reflects the directory entries name instead of an empty string.
-
NormalizePath
Method:- Moved from
[PSCompression.ZipEntryExtensions]::NormalizePath
to[PSCompression.Extensions.PathExtensions]::NormalizePath
.
- Moved from
-
Get-ZipEntry
command:- Renamed Parameter
-EntryType
to-Type
.
- Renamed Parameter
Full Changelog: v2.0.3...v2.0.4
v2.0.3
What's Changed
- No changes to the Module's functionality, this is a very small update to seal all classes that should not be opened following recommendations on dotnet/runtime#49944.
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
All PowerShell functions are now binary cmdlets. There are a few bug fixes and lots of code improvements. The cmdlet's functionality remains the same with a few parameter renaming:
-
ConvertTo-GzipString
: #9 -
ConvertFrom-GzipString
: #11 -
Expand-GzipArchive
: #14 -
Compress-GzipArchive
: #15- Renamed
-DestinationPath
to-Destination
and alias added to maintain compatibility.
- Renamed
-
Compress-ZipArchive
: #17- Renamed
-DestinationPath
to-Destination
and alias added to maintain compatibility.
- Renamed
Full Changelog: v2.0.1...v2.0.2