intvsteve / VINTage

Various Intellivision-related projects, including the LTO Flash! User Interface application.
GNU General Public License v2.0
3 stars 1 forks source link

Add base support for native .gz access #311

Open intvsteve opened 5 years ago

intvsteve commented 5 years ago

As with ZIP, there are two readily available implementations:

Unfortunately, it appears neither of them actually support exposure of the metadata in the header - original file names, modification time, et. al. And they don't seem to directly expose the fact that multiple entries can be stored in a single .gz file. Perhaps at best one could iteratively inflate until EOF is encountered. Unfortunately support for multiple members seems to be … less-than-ideal.

All that said, it seems multi-member .gz files are rare, so not going to pour effort into it.

intvsteve commented 5 years ago

Based on readings of the gzip man page, multiple members are simply the result of concatenating gzip files together. Since the metadata is optional, the utility of trying to support anything very sophisticated is not worthwhile w.r.t. multiple entries. The best practice when dealing with multiple files really is to gzip a tar, so that's what this little corner of the codebase will attempt to do. I.e. assume one member in the .gz and move along.

intvsteve commented 5 years ago

Oh, who am I kidding. I know I'm going to end up a skimmer that fetches the metadata that's available and just inflates to Stream.Null to see if there are more entries.... Just need to try out a couple concatenated .gz files.