Check-in [494c27197f]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:update zipfs(n) man page
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 494c27197fb05aedf0550079b72c0ddab5d8a82a
User & Date: chw 2016-12-11 09:35:37
Context
2016-12-15
12:24
cosmetic changes regarding monotonic time check-in: 59b9ee60c4 user: chw tags: trunk
2016-12-11
09:35
update zipfs(n) man page check-in: 494c27197f user: chw tags: trunk
2016-12-09
20:48
add selected changes from Roy Keene's tcltls 1.7.x source tree check-in: 6f3e4207d9 user: chw tags: trunk
Changes

Changes to jni/tcl/doc/zipfs.n.

11
12
13
14
15
16
17
18
19
20
21


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54







55
56
57
58
59
60
61













62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111



112
113
114
115
116
117
118
'\" 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:







|
|
|
|
>
>
|
|
|
|
|





|

|



|



|
|

|







|
|
>
>
>
>
>
>
>


|




>
>
>
>
>
>
>
>
>
>
>
>
>
|


|












|


|

|













|

|









|


>
>
>







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
'\" 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
\fBzipfs::exists\fR \fIfilename\fR
\fBzipfs::find\fR \fIdir\fR
\fBzipfs::info\fR \fIfilename\fR
\fBzipfs::list\fR \fB?(-glob|-regexp)?\fR \fI?pattern?\fR
\fBzipfs::lmkimg\fR \fIoutfile\fR \fIinlist\fR \fI?strip?\fR \fI?password?\fR \fI?infile?\fR
\fBzipfs::lmkzip\fR \fIoutfile\fR \fIinlist\fR \fI?strip?\fR \fI?password?\fR
\fBzipfs::mkimg\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR \fI?infile?\fR
\fBzipfs::mkkey\fR \fIpassword\fR
\fBzipfs::mkzip\fR \fIoutfile\fR \fIindir\fR \fI?strip?\fR \fI?password?\fR
\fBzipfs::mount\fR \fI?zipfile\fR \fI?mountpoint?\fR \fI?password?\fR
\fBzipfs::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
\fBzipfs::exists\fR \fIfilename\fR
.
Return 1 if the given filename exists in the mounted zipfs and 0 if it does not.
.TP
\fBzipfs::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 \fBzipfs::mkzip\fR
and \fBzipfs::mkimg\fR commands.
.TP
\fBzipfs::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.
.PP
Note: the file of a mounted ZIP archive appears as directory but can
be opened and read like a regular file if the mount process detected a non
archive area in front of the ZIP archive, e.g. when the ZIP archive was
appended to an executable file. In this case that area can be read using
the Tcl \fBopen\fR and \fBread\fR commands but \fBfile copy\fR treats
the mounted archive as a directory.
.RE
.TP
\fBzipfs::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
\fBzipfs::lmkimg\fR \fIoutfile\fR \fIinlist\fR \fI?strip?\fR \fI?password?\fR \fI?infile?\fR
Like \fBzipfs::mkimg\fR but instead of an input directory \fIinlist\fR
must be a list where the odd elements are the original input file names as
copied into the archive and the even elements their respective names within
the archive.
.TP
\fBzipfs::lmkzip\fR \fIoutfile\fR \fIinlist\fR \fI?strip?\fR \fI?password?\fR
.
Like \fBzipfs::mkzip\fR but instead of an input directory \fIinlist\fR
must be a list where the odd elements are the original input file names as
copied into the archive and the even elements their respective names within
the archive.
.TP
\fBzipfs::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
\fBzipfs::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
\fBzipfs::mkkey\fR \fIpassword\fR
.
For the clear text \fIpassword\fR argument an obfuscated string version
is returned with the same format used in the \fBzipfs::mkimg\fR command.
.TP
\fBzipfs::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
\fBzipfs::mount ?\fIzipfile\fR? ?\fImountpoint\fR?
.
The \fBzipfs::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
\fBzipfs::unmount \fIzipfile\fR
.
Unmounts a previously mounted ZIP archive file \fIzipfile\fR.
.PP
The commands described above are available as subcommands in the \fBzipfs\fR
ensemble, i.e. \fBzipfs list\fR is equivalent to \fBzipfs::list\fR.
.SH "SEE ALSO"
tclsh(1), file(n), zlib(n)
.SH "KEYWORDS"
compress, filesystem, zip
'\" Local Variables:
'\" mode: nroff
'\" End: