489 lines
14 KiB
HTML
489 lines
14 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<head>
|
|
<title>Penlight Documentation</title>
|
|
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
|
</head>
|
|
<body>
|
|
|
|
<div id="container">
|
|
|
|
<div id="product">
|
|
<div id="product_logo"></div>
|
|
<div id="product_name"><big><b></b></big></div>
|
|
<div id="product_description"></div>
|
|
</div> <!-- id="product" -->
|
|
|
|
|
|
<div id="main">
|
|
|
|
|
|
<!-- Menu -->
|
|
|
|
<div id="navigation">
|
|
<br/>
|
|
<h1>Penlight</h1>
|
|
|
|
<ul>
|
|
<li><a href="../index.html">Index</a></li>
|
|
</ul>
|
|
|
|
<h2>Contents</h2>
|
|
<ul>
|
|
<li><a href="#Functions">Functions</a></li>
|
|
</ul>
|
|
|
|
|
|
<h2>Modules</h2>
|
|
<ul>
|
|
<li><a href="../modules/pl.html">pl</a></li>
|
|
<li><a href="../modules/pl.Date.html">pl.Date</a></li>
|
|
<li><a href="../modules/pl.List.html">pl.List</a></li>
|
|
<li><a href="../modules/pl.Map.html">pl.Map</a></li>
|
|
<li><a href="../modules/pl.MultiMap.html">pl.MultiMap</a></li>
|
|
<li><a href="../modules/pl.OrderedMap.html">pl.OrderedMap</a></li>
|
|
<li><a href="../modules/pl.Set.html">pl.Set</a></li>
|
|
<li><a href="../modules/pl.app.html">pl.app</a></li>
|
|
<li><a href="../modules/pl.array2d.html">pl.array2d</a></li>
|
|
<li><a href="../modules/pl.class.html">pl.class</a></li>
|
|
<li><a href="../modules/pl.comprehension.html">pl.comprehension</a></li>
|
|
<li><a href="../modules/pl.config.html">pl.config</a></li>
|
|
<li><a href="../modules/pl.data.html">pl.data</a></li>
|
|
<li><strong>pl.dir</strong></li>
|
|
<li><a href="../modules/pl.file.html">pl.file</a></li>
|
|
<li><a href="../modules/pl.func.html">pl.func</a></li>
|
|
<li><a href="../modules/pl.input.html">pl.input</a></li>
|
|
<li><a href="../modules/pl.lapp.html">pl.lapp</a></li>
|
|
<li><a href="../modules/pl.lexer.html">pl.lexer</a></li>
|
|
<li><a href="../modules/pl.luabalanced.html">pl.luabalanced</a></li>
|
|
<li><a href="../modules/pl.operator.html">pl.operator</a></li>
|
|
<li><a href="../modules/pl.path.html">pl.path</a></li>
|
|
<li><a href="../modules/pl.permute.html">pl.permute</a></li>
|
|
<li><a href="../modules/pl.pretty.html">pl.pretty</a></li>
|
|
<li><a href="../modules/pl.seq.html">pl.seq</a></li>
|
|
<li><a href="../modules/pl.sip.html">pl.sip</a></li>
|
|
<li><a href="../modules/pl.strict.html">pl.strict</a></li>
|
|
<li><a href="../modules/pl.stringio.html">pl.stringio</a></li>
|
|
<li><a href="../modules/pl.stringx.html">pl.stringx</a></li>
|
|
<li><a href="../modules/pl.tablex.html">pl.tablex</a></li>
|
|
<li><a href="../modules/pl.template.html">pl.template</a></li>
|
|
<li><a href="../modules/pl.test.html">pl.test</a></li>
|
|
<li><a href="../modules/pl.text.html">pl.text</a></li>
|
|
<li><a href="../modules/pl.utils.html">pl.utils</a></li>
|
|
<li><a href="../modules/pl.xml.html">pl.xml</a></li>
|
|
</ul>
|
|
<h2>Topics</h2>
|
|
<ul>
|
|
<li><a href="../topics/01-introduction.md.html">01-introduction.md</a></li>
|
|
<li><a href="../topics/02-arrays.md.html">02-arrays.md</a></li>
|
|
<li><a href="../topics/03-strings.md.html">03-strings.md</a></li>
|
|
<li><a href="../topics/04-paths.md.html">04-paths.md</a></li>
|
|
<li><a href="../topics/05-dates.md.html">05-dates.md</a></li>
|
|
<li><a href="../topics/06-data.md.html">06-data.md</a></li>
|
|
<li><a href="../topics/07-functional.md.html">07-functional.md</a></li>
|
|
<li><a href="../topics/08-additional.md.html">08-additional.md</a></li>
|
|
<li><a href="../topics/09-discussion.md.html">09-discussion.md</a></li>
|
|
</ul>
|
|
<h2>Examples</h2>
|
|
<ul>
|
|
<li><a href="../examples/seesubst.lua.html">seesubst.lua</a></li>
|
|
<li><a href="../examples/sipscan.lua.html">sipscan.lua</a></li>
|
|
<li><a href="../examples/symbols.lua.html">symbols.lua</a></li>
|
|
<li><a href="../examples/test-cmp.lua.html">test-cmp.lua</a></li>
|
|
<li><a href="../examples/test-data.lua.html">test-data.lua</a></li>
|
|
<li><a href="../examples/test-listcallbacks.lua.html">test-listcallbacks.lua</a></li>
|
|
<li><a href="../examples/test-pretty.lua.html">test-pretty.lua</a></li>
|
|
<li><a href="../examples/test-symbols.lua.html">test-symbols.lua</a></li>
|
|
<li><a href="../examples/testapp.lua.html">testapp.lua</a></li>
|
|
<li><a href="../examples/testclone.lua.html">testclone.lua</a></li>
|
|
<li><a href="../examples/testconfig.lua.html">testconfig.lua</a></li>
|
|
<li><a href="../examples/testglobal.lua.html">testglobal.lua</a></li>
|
|
<li><a href="../examples/testinputfields.lua.html">testinputfields.lua</a></li>
|
|
<li><a href="../examples/testinputfields2.lua.html">testinputfields2.lua</a></li>
|
|
<li><a href="../examples/testxml.lua.html">testxml.lua</a></li>
|
|
<li><a href="../examples/which.lua.html">which.lua</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div id="content">
|
|
|
|
<h1>Module <code>pl.dir</code></h1>
|
|
|
|
<p>Useful functions for getting directory contents and matching them against wildcards.</p>
|
|
<p> Dependencies: <a href="../modules/pl.utils.html#">pl.utils</a> , <a href="../modules/pl.path.html#">pl.path</a> , <a href="../modules/pl.tablex.html#">pl.tablex</a> </p>
|
|
|
|
<p> Soft Dependencies: <code>alien</code>, <code>ffi</code> (either are used on Windows for copying/moving files)</p>
|
|
|
|
<h2><a href="#Functions">Functions</a></h2>
|
|
<table class="function_list">
|
|
<tr>
|
|
<td class="name" nowrap><a href="#fnmatch">fnmatch (file, pattern)</a></td>
|
|
<td class="summary">does the filename match the shell pattern?.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#filter">filter (files, pattern)</a></td>
|
|
<td class="summary">return a list of all files which match the pattern.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#getfiles">getfiles (dir, mask)</a></td>
|
|
<td class="summary">return a list of all files in a directory which match the a shell pattern.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#getdirectories">getdirectories (dir)</a></td>
|
|
<td class="summary">return a list of all subdirectories of the directory.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#copyfile">copyfile (src, dest, flag)</a></td>
|
|
<td class="summary">copy a file.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#movefile">movefile (src, dest)</a></td>
|
|
<td class="summary">move a file.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#walk">walk (root, bottom_up, follow_links)</a></td>
|
|
<td class="summary">return an iterator which walks through a directory tree starting at root.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#rmtree">rmtree (fullpath)</a></td>
|
|
<td class="summary">remove a whole directory tree.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#makepath">makepath (p)</a></td>
|
|
<td class="summary">create a directory path.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#clonetree">clonetree (path1, path2, file_fun, verbose)</a></td>
|
|
<td class="summary">clone a directory tree.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#dirtree">dirtree (d)</a></td>
|
|
<td class="summary">return an iterator over all entries in a directory tree</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="name" nowrap><a href="#getallfiles">getallfiles (start_path, pattern)</a></td>
|
|
<td class="summary">Recursively returns all the file starting at <i>path</i>.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br/>
|
|
<br/>
|
|
|
|
|
|
<h2><a name="Functions"></a>Functions</h2>
|
|
|
|
<dl class="function">
|
|
<dt>
|
|
<a name = "fnmatch"></a>
|
|
<strong>fnmatch (file, pattern)</strong>
|
|
</dt>
|
|
<dd>
|
|
does the filename match the shell pattern?.
|
|
(cf. fnmatch.fnmatch in Python, 11.8)
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>file</em></code>: A file name</li>
|
|
<li><code><em>pattern</em></code>: A shell pattern</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
true or false
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
file and pattern must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "filter"></a>
|
|
<strong>filter (files, pattern)</strong>
|
|
</dt>
|
|
<dd>
|
|
return a list of all files which match the pattern.
|
|
(cf. fnmatch.filter in Python, 11.8)
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>files</em></code>: A table containing file names</li>
|
|
<li><code><em>pattern</em></code>: A shell pattern.</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
list of files
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
file and pattern must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "getfiles"></a>
|
|
<strong>getfiles (dir, mask)</strong>
|
|
</dt>
|
|
<dd>
|
|
return a list of all files in a directory which match the a shell pattern.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>dir</em></code>: A directory. If not given, all files in current directory are returned.</li>
|
|
<li><code><em>mask</em></code>: A shell pattern. If not given, all files are returned.</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
lsit of files
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
dir and mask must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "getdirectories"></a>
|
|
<strong>getdirectories (dir)</strong>
|
|
</dt>
|
|
<dd>
|
|
return a list of all subdirectories of the directory.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>dir</em></code>: A directory</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
a list of directories
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
dir must be a string
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "copyfile"></a>
|
|
<strong>copyfile (src, dest, flag)</strong>
|
|
</dt>
|
|
<dd>
|
|
copy a file.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>src</em></code>: source file</li>
|
|
<li><code><em>dest</em></code>: destination file or directory</li>
|
|
<li><code><em>flag</em></code>: true if you want to force the copy (default)</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
true if operation succeeded
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
src and dest must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "movefile"></a>
|
|
<strong>movefile (src, dest)</strong>
|
|
</dt>
|
|
<dd>
|
|
move a file.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>src</em></code>: source file</li>
|
|
<li><code><em>dest</em></code>: destination file or directory</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
true if operation succeeded
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
src and dest must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "walk"></a>
|
|
<strong>walk (root, bottom_up, follow_links)</strong>
|
|
</dt>
|
|
<dd>
|
|
return an iterator which walks through a directory tree starting at root.
|
|
The iterator returns (root,dirs,files)
|
|
Note that dirs and files are lists of names (i.e. you must say path.join(root,d)
|
|
to get the actual full path)
|
|
If bottom_up is false (or not present), then the entries at the current level are returned
|
|
before we go deeper. This means that you can modify the returned list of directories before
|
|
continuing.
|
|
This is a clone of os.walk from the Python libraries.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>root</em></code>: A starting directory</li>
|
|
<li><code><em>bottom_up</em></code>: False if we start listing entries immediately.</li>
|
|
<li><code><em>follow_links</em></code>: follow symbolic links</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
an iterator returning root,dirs,files
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
root must be a string
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "rmtree"></a>
|
|
<strong>rmtree (fullpath)</strong>
|
|
</dt>
|
|
<dd>
|
|
remove a whole directory tree.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>fullpath</em></code>: A directory path</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>true or nil</li>
|
|
<li>error if failed</li>
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
fullpath must be a string
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "makepath"></a>
|
|
<strong>makepath (p)</strong>
|
|
</dt>
|
|
<dd>
|
|
create a directory path.
|
|
This will create subdirectories as necessary!
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>p</em></code>: A directory path</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
a valid created path
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
p must be a string
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "clonetree"></a>
|
|
<strong>clonetree (path1, path2, file_fun, verbose)</strong>
|
|
</dt>
|
|
<dd>
|
|
clone a directory tree. Will always try to create a new directory structure
|
|
if necessary.
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>path1</em></code>: the base path of the source tree</li>
|
|
<li><code><em>path2</em></code>: the new base path for the destination</li>
|
|
<li><code><em>file_fun</em></code>: an optional function to apply on all files</li>
|
|
<li><code><em>verbose</em></code>: an optional boolean to control the verbosity of the output.
|
|
It can also be a logging function that behaves like print()</li>
|
|
</ul>
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">clonetree('.','../backup',copyfile)</pre>
|
|
</ul>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>true, or nil</li>
|
|
<li>error message, or list of failed directory creations</li>
|
|
<li>list of failed file operations</li>
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
path1 and path2 must be strings
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "dirtree"></a>
|
|
<strong>dirtree (d)</strong>
|
|
</dt>
|
|
<dd>
|
|
return an iterator over all entries in a directory tree
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>d</em></code>: a directory</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
an iterator giving pathname and mode (true for dir, false otherwise)
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
d must be a non-empty string
|
|
|
|
</dd>
|
|
<dt>
|
|
<a name = "getallfiles"></a>
|
|
<strong>getallfiles (start_path, pattern)</strong>
|
|
</dt>
|
|
<dd>
|
|
<p>Recursively returns all the file starting at <i>path</i>. It can optionally take a shell pattern and</p>
|
|
|
|
<pre><code>only returns files that match <i>pattern</i>. If a pattern is given it will do a case insensitive search.
|
|
</code></pre>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<ul>
|
|
<li><code><em>start_path</em></code>: {string} A directory. If not given, all files in current directory are returned.</li>
|
|
<li><code><em>pattern</em></code>: {string} A shell pattern. If not given, all files are returned.</li>
|
|
</ul>
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
Table containing all the files found recursively starting at <i>path</i> and filtered by <i>pattern</i>.
|
|
</ol>
|
|
|
|
<h3>Raises:</h3>
|
|
start_path must be a string
|
|
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
</div> <!-- id="content" -->
|
|
</div> <!-- id="main" -->
|
|
<div id="about">
|
|
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.2</a></i>
|
|
</div> <!-- id="about" -->
|
|
</div> <!-- id="container" -->
|
|
</body>
|
|
</html>
|