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 zUtils.FileBinaryTar.xml to %SYS namespace.
Or install with zpm
zpm "install isc-tar"
docker-compose up -d --build
Avialable in any namespace, code stored in %SYS.
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")