summaryrefslogtreecommitdiffstats
path: root/doc/zipfs.n
diff options
context:
space:
mode:
authorhypnotoad <yoda@etoyoc.com>2016-01-12 19:03:55 (GMT)
committerhypnotoad <yoda@etoyoc.com>2016-01-12 19:03:55 (GMT)
commitbd7d14f2932e215e3494e56286dccd22176e6cbb (patch)
tree3a323daf7c1bff7845b05d8e0231180fd35a9626 /doc/zipfs.n
parent1956f4b66b698ceb8a4ba5bfb51e39a17d727187 (diff)
parent982211da161390b9c9d77815748c4519258e0ab5 (diff)
downloadtcl-bd7d14f2932e215e3494e56286dccd22176e6cbb.zip
tcl-bd7d14f2932e215e3494e56286dccd22176e6cbb.tar.gz
tcl-bd7d14f2932e215e3494e56286dccd22176e6cbb.tar.bz2
Reconciled the inner workings of the core_zip_vfs and zipfs branch of Tcl
core_zip_vfs now uses the same C implementation. More fixes to come as I tweak the userspace and Makefile tools. The goal is to fold core_zip_vfs into the zipfs branch.
Diffstat (limited to 'doc/zipfs.n')
-rw-r--r--doc/zipfs.n119
1 files changed, 119 insertions, 0 deletions
diff --git a/doc/zipfs.n b/doc/zipfs.n
new file mode 100644
index 0000000..ed2099e
--- /dev/null
+++ b/doc/zipfs.n
@@ -0,0 +1,119 @@
+'\"
+'\" Copyright (c) 2015 Jan Nijtmans <jan.nijtmans@gmail.com>
+'\" Copyright (c) 2015 Christian Werner <chw@ch-werner.de>
+'\" Copyright (c) 2015 Sean Woods <yoda@etoyoc.com>
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+.TH zipfs n 1.0 Zipfs "zipfs Commands"
+.so man.macros
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+zipfs \- Mount and work with ZIP files within Tcl
+.SH SYNOPSIS
+.nf
+\fBpackage require zipfs \fR?\fB1.0\fR?
+.sp
+\fB::zipfs::exists\fR \fIfilename\fR
+\fB::zipfs::find\fR \fIdir\fR
+\fB::zipfs::info\fR \fIfilename\fR
+\fB::zipfs::list\fR \fB?(-glob|-regexp)?\fR \fI?pattern?\fR
+\fB::zipfs::mkimg\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR \fI?infile?\fR
+\fB::zipfs::mkkey\fR \fIpassword\fR
+\fB::zipfs::mkzip\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR
+\fB::zipfs::mount\fR \fI?zipfile\fR \fI?mountpoint?\fR \fI?password?\fR
+\fB::zipfs::unmount\fR \fIzipfile\fR
+.fi
+.BE
+.SH DESCRIPTION
+.PP
+The \fBzipfs\fR package provides tcl with the ability to mount
+the contents of a zip file as a virtual file system.
+.TP
+\fB::zipfs::exists\fR \fIfilename\fR
+.
+Return 1 if the given filename exists in the mounted zipfs and 0 if it does not.
+.TP
+\fB::zipfs::find\fR \fIdir\fR
+.
+Recursively lists files including and below the directory \fIdir\fR.
+The result list consists of relative path names starting from the
+given directory. This command is also used by the \fB::zipfs::mkzip\fR
+and \fB::zipfs::mkimg\fR commands.
+.TP
+\fB::zipfs::info\fR \fIfile\fR
+.
+Return information about the given file in the mounted zipfs. The information
+consists of (1) the name of the ZIP archive file that contains the file,
+(2) the size of the file after decompressions, (3) the compressed size of
+the file, and (4) the offset of the compressed data in the ZIP archive file.
+.RS
+.PP
+Note: querying the mount point gives the start of zip data offset in (4),
+which can be used to truncate the zip info off an executable.
+.RE
+.TP
+\fB::zipfs::list\fR \fB?(-glob|-regexp)?\fR \fI?pattern?\fR
+.
+Return a list of all files in the mounted zipfs. The order of the names
+in the list is arbitrary.
+.TP
+\fB::zipfs::mkimg\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR \fI?infile?\fR
+.
+Creates an image (potentially a new executable file) similar to
+\fB::zipfs::mkzip\fR. If the \fIinfile\fR parameter is specified,
+this file is prepended in front of the ZIP archive, otherwise the file
+returned by \fBTcl_NameOfExecutable(3)\fR (i.e. the executable file of
+the running process) is used. If the \fIpassword\fR parameter is not empty,
+an obfuscated version of that password is placed between the image and ZIP
+chunks of the output file and the contents of the ZIP chunk are protected
+with that password.
+.RS
+.PP
+Caution: highly experimental, not usable on Android, only partially tested
+on Linux and Windows.
+.RE
+.TP
+\fB::zipfs::mkkey\fR \fIpassword\fR
+.
+For the clear text \fIpassword\fR argument an obfuscated string version
+is returned with the same format used in the \fB::zipfs::mkimg\fR command.
+.TP
+\fB::zipfs::mkzip\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR
+.
+Creates a ZIP archive file named \fIoutfile\fR from the contents of the input
+directory \fIindir\fR (contained regular files only) with optional ZIP
+password \fIpassword\fR. While processing the files below \fIindir\fR the
+optional file name prefix given in \fIstrip\fR is stripped off the beginning
+of the respective file name.
+.RS
+.PP
+Caution: the choice of the \fIindir\fR parameter
+(less the optional stripped prefix) determines the later root name of the
+archive's content.
+.RE
+.TP
+\fB::zipfs::mount ?\fIzipfile\fR? ?\fImountpoint\fR?
+.
+The \fB::zipfs::mount\fR command mounts a ZIP archive file as a VFS.
+After this command executes, files contained in \fIzipfile\fR
+will appear to Tcl to be regular files at the mount point.
+.RS
+.PP
+With no \fImountpoint\fR, returns the mount point for \fIzipfile\fR.
+With no \fIzipfile\fR, return all zipfile/mount pairs.
+If \fImountpoint\fR is specified as an empty string, mount on file path.
+.RE
+.TP
+\fB::zipfs::unmount \fIzipfile\fR
+.
+Unmounts a previously mounted ZIP archive file \fIzipfile\fR.
+.SH "SEE ALSO"
+tclsh(1), file(n), zlib(n)
+.SH "KEYWORDS"
+compress, filesystem, zip
+'\" Local Variables:
+'\" mode: nroff
+'\" End: