zipfile::decode(3tcl)

πŸ“¦
version 2.0 Β· 3 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– zipfile::decode β€” the manual page, but make it cute πŸ’–

okay bestie, gather round, because today we're talking about zipfile::decode β€” the Tcllib manual for Access to zip archives. yes, the whole vibe is "open the zip, peek inside, take what you want". let's get into it πŸŽ€


✨ SYNOPSIS ✨

first things first, the prerequisites, because this package is a lil needy (affectionately):

package require Tcl 8.5 9

package require fileutil::decode 0.2.1

package require Trf

package require zlibtcl

package require zipfile::decode ?0.10.1?

and here's the full roster of commands this package hands you:

::zipfile::decode::archive

::zipfile::decode::close

::zipfile::decode::comment adict

::zipfile::decode::content archive

::zipfile::decode::copyfile adict path dst

::zipfile::decode::files adict

::zipfile::decode::getfile zdict path

::zipfile::decode::hasfile adict path

::zipfile::decode::filesize zdict path

::zipfile::decode::filecomment zdict path

::zipfile::decode::iszip archive

::zipfile::decode::open archive

::zipfile::decode::unzip adict dstdir

::zipfile::decode::unzipfile archive dstdir

like, that's a whole squad. πŸ‘‘


🌸 DESCRIPTION 🌸

okay so real talk first:

Note: packages Trf and zlibtcl are not required if TCL 8.6 is available.

(this package provides commands to decompress and access the contents of zip archives β€” that's the whole job, that's the assignment πŸ’…)


πŸ¦‹ API πŸ¦‹

::zipfile::decode::archive

This command decodes the last opened (and not yet closed) zip archive file. The result of the command is a dictionary describing the contents of the archive. The structure of this dictionary is not public β€” so don't go poking at it directly, bestie. Proper access should be made through the provided accessor commands of this package. iykyk πŸ™ˆ

::zipfile::decode::close

This command releases all state associated with the last call of ::zipfile::decode::open. The result of the command is the empty string. bye babe, clean exit, no mess ✨

::zipfile::decode::comment adict

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and returns the global comment of the archive.

::zipfile::decode::content archive

This is a convenience command which decodes the specified zip archive file and returns the list of paths found in it as its result. one line, whole list, slay.

::zipfile::decode::copyfile adict path dst

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and copies the decompressed contents of the file path in the archive to the the file dst. An error is thrown if the file is not found in the archive.

::zipfile::decode::files adict

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and returns the list of files found in the archive.

::zipfile::decode::getfile zdict path

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and returns the decompressed contents of the file path in the archive. An error is thrown if the file is not found in the archive.

::zipfile::decode::hasfile adict path

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and check if the specified path is found in the archive. The result of the command is a boolean flag, true if the path is found, and false otherwise. vibe check passed or failed, no in-between πŸ’€

::zipfile::decode::filesize zdict path

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and returns the decompressed size of the file path in the archive. An error is thrown if the file is not found in the archive.

::zipfile::decode::filecomment zdict path

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and returns the per-file comment of the file path in the archive. An error is thrown if the file is not found in the archive.

::zipfile::decode::iszip archive

This command takes the path of a presumed zip archive file and returns a boolean flag as the result of the command telling us if it actually is a zip archive (true), or not (false).

::zipfile::decode::open archive

This command takes the path of a zip archive file and prepares it for decoding. The result of the command is the empty string. All important information is stored in global state. If multiple open calls are made one after the other only the state of the last call is available to the other commands.

bestie, read that again β€” it's global state, and it's last one wins. every open overwrites the previous one's state, so the other commands only ever see the most recent archive. plan accordingly πŸ™ˆ

::zipfile::decode::unzip adict dstdir

This command takes a dictionary describing the currently open zip archive file, as returned by ::zipfile::decode::archive, and unpacks the archive in the given destination directory dstdir. The result of the command is the empty string.

::zipfile::decode::unzipfile archive dstdir

This is a convenience command which unpacks the specified zip archive file in the given destination directory dstdir.

The result of the command is the empty string.


πŸ’€ BUGS, IDEAS, FEEDBACK πŸ’€

not me having to say this, but: this document, and the package it describes, will undoubtedly contain bugs and other problems. 😭 Please report such in the category zipfile of the Tcllib Trackers at http://core.tcl.tk/tcllib/reportlist. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide unified diffs, i.e the output of diff -u.

Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.


πŸ”₯ KEYWORDS πŸ”₯

decompression, zip


πŸ‘‘ CATEGORY πŸ‘‘

File


Copyright (c) 2008-2022 Andreas Kupries


and that's the whole page, bestie β€” every flag, every command, every error, nothing skipped. this one ships with tcllib, version 0.10.1, and it's zipfile::decode(3tcl) through and through. go forth and unzip responsibly πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from