This tool helps to extract data right from tar.gz
or just tar
archives with ObjectScript. Or compact any files/folders with tar format and make tar.gz
.
Import and compile file src/cls/%zUtils/FileBinaryTar.cls
to %SYS
namespace.
Extract tar.gz
file
Set gzip = 1
Set extracted = ##class(%ZUtils.FileBinaryTar).ExtractFile("/tmp/some.tgz", gzip)
Set tSC = extracted.FindPath("folder/subfolder/test.txt", .file)
Set fileContent = file.fileData
While 'fileContent.AtEnd {
/// read file from archive
}
Set tSC = extracted.ExtractTo("/tmp/some/place")
Compact folder/file to tar.gz
file
Set gzip = 1
Set archive = ##class(%ZUtils.FileBinaryTar).Compact("/tmp/some/place", gzip, "/tmp/some.tgz")