SYNOPSIS
package require Tcl 8.6package require zipfile::mkzip ?1.2?
::zipfile::mkzip::mkzip zipfile ?-zipkit? ?-runtime prefix? ?-comment string? ?-directory rootpath? ?-exclude exclude? ?--? ?path...?
DESCRIPTION
This package utilizes the zlib functions in Tcl 8.6 to build zip archives.
API
- ::zipfile::mkzip::mkzip zipfile ?-zipkit? ?-runtime prefix? ?-comment string? ?-directory rootpath? ?-exclude exclude? ?--? ?path...?
-
From http://wiki.tcl.tk/15158
This command constructs a zip archive from a directory tree using nothing but Tcl 8.6 core features. The resulting zip file should be compatible with other zip programs - with the possible exception of unicode support. The files generated by this command use utf-8 encoding for all filenames and comments and it has been noticed particularly on Windows the info-zip and the Windows built-in zip view have rather poor support for this part of the ZIP file specification. The 7-Zip program does correctly display utf8 filenames however and the vfs::zip package will use these of course.
If you use
-
::mkzip::mkzip mystuff.tm -zipkit -directory mystuff.vfs
-
-
it will pack your "mystuff.vfs/" virtual filesystem tree into a
zip archive with a suitable header such that on unix you may mark it
executable and it should run with tclkit. Or you can run it with
tclsh or wish 8.6 if you like.
To change the executable header, specify the -runtime "preface" where preface is a file containing code you want prefixed. For instance, on Windows you can create a self-extracting zip archive using
-
mkzip mystuff.exe -directory mystuff.vfs -runtime unzipsfx.exe
-
-
The "unzipsfx.exe" is the Info-Zip self-extracting stub.
Accepted options:
-
- -runtime path
- This option specifies a file to use as prefix to the actual zip archive. If specified -zipkit will be ignored.
- -zipkit
- Instructs the command to generate a prefix which makes the archive a zip-based starkit. Ignored if -runtime is present.
- -comment string
- This options specifies a global comment to place into the generated archive.
- -directory path
- This option specifies the directory to place into the generated archive. If specified any argument paths are ignored.
- -exclude list
-
This option specifies a list of glob patterns. All paths matching at
least one of the patterns are not placed into the generated archive.
This option defaults to
-
CVS/* */CVS/* *~ ".#*" "*/.#*"
-
- --
- This option signals the end of the options, forcing processing of all further words as arguments, even if they begin with a dash character.
Accepted arguments:
-
- path path
- Each path is a directory or file to place into the generated archive. Note however that these will be ignored when option -directory is specified.
-
BUGS, IDEAS, FEEDBACK
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 [http://core.tcl.tk/tcllib/reportlist]. Please also report any ideas for enhancements you may have for either package and/or documentation.KEYWORDS
decompression, zipCATEGORY
FileCOPYRIGHT
Copyright (c) 2009 Pat Thoyts