mirror of
https://github.com/lunarmodules/luafilesystem.git
synced 2026-07-22 11:03:07 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b848b63be4 |
37
Makefile
37
Makefile
@@ -1,40 +1,35 @@
|
||||
# $Id: Makefile,v 1.12 2005/01/19 14:28:58 tomas Exp $
|
||||
# $Id: Makefile,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
|
||||
T= lfs
|
||||
T= luafilesystem
|
||||
|
||||
include ./config
|
||||
|
||||
V= 1.0
|
||||
DIST_DIR= luafilesystem-$V
|
||||
TAR_FILE= $(DIST_DIR).tar.gz
|
||||
ZIP_FILE= $(DIST_DIR).zip
|
||||
V= 1.0a
|
||||
LIBNAME= lib$T.$V$(LIB_EXT)
|
||||
L= $T.lua
|
||||
TL= t_$T.lua
|
||||
|
||||
SRCS= $T.c
|
||||
OBJS= $T.o compat-5.1.o
|
||||
OBJS= $T.o
|
||||
|
||||
|
||||
lib: $(LIBNAME)
|
||||
|
||||
$(LIBNAME): $(OBJS)
|
||||
$(LIBNAME): $(OBJS) $(TL)
|
||||
$(CC) $(CFLAGS) $(LIB_OPTION) -o $(LIBNAME) $(OBJS) $(LIBS)
|
||||
sed -e "s|LIB_NAME|$(LIB_DIR)/$(LIBNAME)|" $(TL) > $L
|
||||
|
||||
compat-5.1.o: $(COMPAT_DIR)/compat-5.1.c
|
||||
$(CC) -c $(CFLAGS) -o $@ $(COMPAT_DIR)/compat-5.1.c
|
||||
$(LUA_DIR)/$L: $L
|
||||
mkdir -p $(LUA_DIR)
|
||||
cp $L $(LUA_DIR)
|
||||
|
||||
install: $(LIBNAME)
|
||||
mkdir -p $(LUA_LIBDIR)
|
||||
cp $(LIBNAME) $(LUA_LIBDIR)
|
||||
ln -f -s $(LUA_LIBDIR)/$(LIBNAME) $(LUA_LIBDIR)/$T$(LIB_EXT)
|
||||
install: $(LUA_DIR)/$L $(LIBNAME)
|
||||
mkdir -p $(LIB_DIR)
|
||||
cp $(LIBNAME) $(LIB_DIR)
|
||||
|
||||
clean:
|
||||
rm -f $L $(LIBNAME) $(OBJS)
|
||||
|
||||
dist: dist_dir
|
||||
tar -czf $(TAR_FILE) $(DIST_DIR)
|
||||
zip -rq $(ZIP_FILE) $(DIST_DIR)/*
|
||||
rm -rf $(DIST_DIR)
|
||||
|
||||
dist_dir:
|
||||
dist:
|
||||
mkdir -p $(DIST_DIR)
|
||||
cp config $(SRCS) $T.h $T.def Makefile *html luafilesystem.png $(DIST_DIR)
|
||||
cp config $(SRCS) $T.h $(TL) Makefile $(DIST_DIR)
|
||||
|
||||
16
config
16
config
@@ -1,10 +1,7 @@
|
||||
# Installation directories
|
||||
# System's libraries directory (where binary libraries are installed)
|
||||
LUA_LIBDIR= /usr/local/lib/lua/5.0
|
||||
# System's lua directory (where Lua libraries are installed)
|
||||
LUA_DIR= /usr/local/share/lua/5.0
|
||||
# Lua includes directory
|
||||
LUA_INC= /usr/local/include/lua5
|
||||
# System's libraries directory (where Lua libraries are installed)
|
||||
LIB_DIR= /usr/local/lib
|
||||
LUA_DIR= /usr/local/lua
|
||||
|
||||
# OS dependent
|
||||
LIB_EXT= .dylib
|
||||
@@ -12,14 +9,13 @@ LIB_EXT= .dylib
|
||||
LIB_OPTION= -dynamiclib #for MacOS X
|
||||
#LIB_OPTION= -shared #for Linux
|
||||
|
||||
COMPAT_DIR= .
|
||||
|
||||
# Compilation directives
|
||||
# pre-compile and include mod2.lua into mod_lua.c
|
||||
# On FreeBSD systems, the following line should be commented
|
||||
DLLIB= -ldl
|
||||
WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings
|
||||
INCS= -I$(LUA_INC) -I$(COMPAT_DIR)
|
||||
LIBS= -L$(LUA_LIBDIR) -llua -llualib -lm $(DLLIB)
|
||||
INCS= -I/usr/local/include/lua5
|
||||
LIBS= -L$(LIB_DIR) -llua -llualib -lm $(DLLIB)
|
||||
CFLAGS= $(WARN) $(INCS)
|
||||
CC= gcc
|
||||
|
||||
|
||||
@@ -1,30 +1,25 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
||||
<title>LuaFileSystem</title>
|
||||
<style type="text/css">
|
||||
ul { list-style-type: disc };
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<center>
|
||||
<table border="0" cellspacing="2" cellpadding="2">
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.keplerproject.org"><img
|
||||
border="0" alt="LuaFileSystem" src="luafilesystem.png"></a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center"><big><b>LuaFileSystem</b></big> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="top">File System Library for the <a
|
||||
href="http://www.lua.org">Lua</a> Programming Language</td>
|
||||
</tr>
|
||||
<table border=0 cellspacing=2 cellpadding=2>
|
||||
<tr><td align=center><a href="http://www.keplerproject.org">
|
||||
<img border=0 alt="LuaFileSystem" src="luafilesystem.png"></a>
|
||||
<tr><td align=center><big><b>LuaFileSystem</b></big>
|
||||
<tr><td align=center valign=top>File system library for the
|
||||
<a href="http://www.lua.org">Lua</a>
|
||||
programming language
|
||||
</table>
|
||||
</center>
|
||||
<p>
|
||||
|
||||
<center><small>
|
||||
<a href="#over">overview</a> ·
|
||||
@@ -33,96 +28,87 @@ href="http://www.lua.org">Lua</a> Programming Language</td>
|
||||
<a href="#credits">credits</a> ·
|
||||
<a href="#contact">contact us</a>
|
||||
</small></center>
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
<h2>Contents</h2>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
<li><a href="#over">Overview</a></li>
|
||||
|
||||
<li><a href="#version">Current Version</a></li>
|
||||
|
||||
<li><a href="#download">Download</a></li>
|
||||
|
||||
<li><a href="#manual">Manual</a></li>
|
||||
|
||||
<li><a href="#credits">Credits</a></li>
|
||||
|
||||
<li><a href="#contact">Contact us</a></li>
|
||||
<li> <a href="#over">Overview</a>
|
||||
<li> <a href="#version">Current Version</a>
|
||||
<li> <a href="#download">Download</a>
|
||||
<li> <a href="#manual">Manual</a>
|
||||
<li> <a href="#credits">Credits</a>
|
||||
<li> <a href="#contact">Contact us</a>
|
||||
</ul>
|
||||
|
||||
<a name="over"></a>
|
||||
|
||||
<a name="over"></a>
|
||||
<h2>Overview</h2>
|
||||
<p>
|
||||
LuaFileSystem is a library developed to complement the set of functions
|
||||
related to file systems offered by the standard Lua distribution.
|
||||
One of its goals is to be as portable as Lua.
|
||||
<p>
|
||||
LuaFileSystem is free software and uses the same
|
||||
<a href="license.html">license</a>
|
||||
as Lua 5.0.
|
||||
|
||||
<p>LuaFileSystem is a library developed to complement the set of
|
||||
functions related to file systems offered by the standard Lua
|
||||
distribution. One of its goals is to be as portable as Lua.</p>
|
||||
|
||||
<p>LuaFileSystem is free software and uses the same <a href=
|
||||
"license.html">license</a> as Lua 5.0. <a name="version"></a></p>
|
||||
|
||||
<a name="version"></a>
|
||||
<h2>Current version</h2>
|
||||
|
||||
<p>Current version is 1.0. It was developed for Lua 5.0.</p>
|
||||
|
||||
<p>Version 1.0 follows the
|
||||
<a href="http://www.keplerproject.org/compat">package proposal</a>
|
||||
for Lua 5.1 (see section <a href="#installation">Installation</a>
|
||||
for more details).
|
||||
<p>
|
||||
Current version is 1.0 alpha.
|
||||
It was developed for Lua 5.0.
|
||||
</p>
|
||||
|
||||
|
||||
<a name="download"></a>
|
||||
<h2>Download</h2>
|
||||
|
||||
<p>
|
||||
LuaFileSystem can be downloaded from its
|
||||
<a href="http://luaforge.net/project/showfiles.php?group_id=66">Lua Forge</a>
|
||||
page.
|
||||
</p>
|
||||
LuaFileSystem can be downloaded in source code from the following links:
|
||||
<p>
|
||||
<ul>
|
||||
<li><a href="luafilesystem-1.0a.tar.gz">luafilesystem-1.0a.tar.gz</a>.
|
||||
<li><a href="luafilesystem-1.0a.zip">luafilesystem-1.0a.zip</a>.
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="new"></a>
|
||||
<h2>What's new</h2>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
<li>[21/Jan/2005] Version 1.0 released</li>
|
||||
<li>[10/Nov/2004] Version 1.0 beta released</li>
|
||||
<li>[2/Aug/2004] Version 1.0 alpha released
|
||||
</ul>
|
||||
|
||||
<a name="installation"></a>
|
||||
<h2>Installation</h2>
|
||||
|
||||
<p>LuaFileSystem is distributed as a pair of C source and header
|
||||
files. The distribution provides a <tt>Makefile</tt> prepared to
|
||||
compile the library and install it. The file <tt>config</tt> should
|
||||
be edited to suit the needs of the aimed platform.</p>
|
||||
|
||||
<p>LuaFileSystem follows the
|
||||
<a href="http://www.keplerproject.org/compat">package proposal</a>
|
||||
for Lua 5.1, therefore this package should be "installed".
|
||||
In other words,
|
||||
if you are using Lua 5.0, the files <tt>compat-5.1.c</tt> and
|
||||
<tt>compat-5.1.h</tt> must be used in the compilation and the file
|
||||
<tt>compat-5.1.lua</tt> must be installed in the <tt>LUA_PATH</tt>.
|
||||
If you are using Lua 5.1, nothing should be done.</p>
|
||||
|
||||
<a name="credits"></a>
|
||||
<a name="credits"></a>
|
||||
<h2>Credits</h2>
|
||||
|
||||
<p>LuaFileSystem was designed by Roberto Ierusalimschy,
|
||||
André Carregal and Tomás Guisasola as part of the
|
||||
<a href="http://www.keplerproject.org">Kepler Project</a>
|
||||
which holds its copyright.</p>
|
||||
<p>
|
||||
LuaFileSystem was designed by Roberto Ierusalimschy,
|
||||
André Carregal and Tomás Guisasola as part of
|
||||
<a href="http://www.keplerproject.org">The Kepler Project</a>
|
||||
which holds its copyright.
|
||||
</p>
|
||||
|
||||
<a name="contact"></a>
|
||||
|
||||
<a name="contact"></a>
|
||||
<h2>Contact us</h2>
|
||||
|
||||
<p>For more information please <a href=
|
||||
"mailto:info-NO-SPAM-THANKS@keplerproject.org">contact us</a>.
|
||||
Comments are welcome!</p>
|
||||
<p>
|
||||
For more information please
|
||||
<a href="mailto:tomas-NO-SPAM-THANKS@keplerproject.org">contact us</a>.
|
||||
Comments are welcome!
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<small>$Id: index.html,v 1.9 2005/01/19 14:30:08 tomas Exp $</small>
|
||||
<small>
|
||||
$Id: index.html,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
</small>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -1,69 +1,78 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
||||
<title>LuaFileSystem: license</title>
|
||||
</head>
|
||||
<body bgcolor="#FFFFFF">
|
||||
<hr>
|
||||
<h1>License</h1>
|
||||
<! See Copyright Notice at the end of this file>
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>LuaFileSystem: license</TITLE>
|
||||
</HEAD>
|
||||
|
||||
LuaFileSystem is free software: it can be used for both academic
|
||||
and commercial purposes at absolutely no cost. There are no
|
||||
royalties or GNU-like "copyleft" restrictions. LuaFileSystem
|
||||
qualifies as
|
||||
<a href="http://www.opensource.org/docs/definition.html">Open Source</a>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
|
||||
<HR>
|
||||
<H1>
|
||||
License
|
||||
</H1>
|
||||
|
||||
LuaFileSystem
|
||||
is free software:
|
||||
it can be used for both academic and commercial purposes at absolutely no cost.
|
||||
There are no royalties or GNU-like "copyleft" restrictions.
|
||||
LuaFileSystem qualifies as
|
||||
<A HREF="http://www.opensource.org/docs/definition.html">Open Source</A>
|
||||
software.
|
||||
Its licenses are compatible with
|
||||
<a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
|
||||
LuaFileSystem is not in the public domain and the
|
||||
<a href="http://www.keplerproject.org">Kepler Project</a>
|
||||
<A HREF="http://www.gnu.org/licenses/gpl.html">GPL</A>.
|
||||
LuaFileSystem is not in the public domain and
|
||||
<a href="http://www.keplerproject.org">The Kepler Project</a>
|
||||
keep its copyright.
|
||||
The legal details are below.
|
||||
The legal details are below.
|
||||
<P>
|
||||
|
||||
<p>The spirit of the license is that you are free to use
|
||||
LuaFileSystem for any purpose at no cost without having to ask us.
|
||||
The only requirement is that if you do use LuaFileSystem, then you
|
||||
should give us credit by including the appropriate copyright notice
|
||||
somewhere in your product or its documentation.</p>
|
||||
The spirit of the license is that
|
||||
you are free to use LuaFileSystem for any purpose at no cost without having to ask us.
|
||||
The only requirement is that
|
||||
if you do use LuaFileSystem,
|
||||
then you should give us credit by including the appropriate copyright notice
|
||||
somewhere in your product or its documentation.
|
||||
<P>
|
||||
|
||||
<p>The LuaFileSystem library is designed and implemented by Roberto
|
||||
Ierusalimschy, André Carregal and Tomás Guisasola.
|
||||
The implementation is not derived from licensed software.</p>
|
||||
The LuaFileSystem library is designed and implemented
|
||||
by
|
||||
Roberto Ierusalimschy,
|
||||
André Carregal and
|
||||
Tomás Guisasola.
|
||||
The implementation is not derived from licensed software.
|
||||
<P>
|
||||
|
||||
<p>
|
||||
<!-- ===================================================================== -->
|
||||
</p>
|
||||
<HR>
|
||||
Copyright © 2004 The Kepler Project.
|
||||
<P>
|
||||
|
||||
<hr>
|
||||
Copyright © 2004-2005 The Kepler Project.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
<P>
|
||||
|
||||
<p>Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:</p>
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
<P>
|
||||
|
||||
<p>The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.</p>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
<P>
|
||||
|
||||
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.</p>
|
||||
|
||||
<p>
|
||||
<!-- ===================================================================== -->
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<small>$Id: license.html,v 1.4 2005/01/19 14:30:08 tomas Exp $</small>
|
||||
</body>
|
||||
</html>
|
||||
<HR>
|
||||
<SMALL>
|
||||
$Id: license.html,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
</SMALL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 8.3 KiB |
@@ -1,197 +1,144 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
||||
<title>LuaFileSystem</title>
|
||||
<style type="text/css">
|
||||
ul { list-style-type: disc };
|
||||
</style>
|
||||
</head>
|
||||
<body bgcolor="#FFFFFF">
|
||||
<hr>
|
||||
<center>
|
||||
<table border="0" cellspacing="2" cellpadding="2">
|
||||
<tr>
|
||||
<td align="center"><a href=
|
||||
"http://www.keplerproject.org/luafilesystem"><img border="0" alt=
|
||||
"LuaFileSystem logo" src="luafilesystem.png"></a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center"><big><b>LuaFileSystem Reference Manual</b></big>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="top">File system library for the <a
|
||||
href="http://www.lua.org">Lua</a> programming language</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
<center><small><a href="index.html">home</a> · <a href=
|
||||
"#introduction">introduction</a> · <a href=
|
||||
"#reference">reference</a> · <a href=
|
||||
"#example">example</a></small></center>
|
||||
|
||||
<hr>
|
||||
<a name="introduction"></a>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
|
||||
<p>LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
|
||||
developed to complement the set of functions related to file
|
||||
systems offered by the standard Lua distribution.</p>
|
||||
|
||||
<p>LuaFileSystem is free software and uses the same <a href=
|
||||
"license.html">license</a> as Lua 5.0.</p>
|
||||
|
||||
<a name="reference"></a>
|
||||
|
||||
<h2>Reference</h2>
|
||||
|
||||
<p>LuaFileSystem offers the following functions:</p>
|
||||
|
||||
<ul>
|
||||
<li style="list-style: none"><a name="attributes"></a></li>
|
||||
|
||||
<li><b><tt>lfs.attributes (filepath)</tt></b><br>
|
||||
Obtains the file attributes. The attributes are:
|
||||
|
||||
<div style="margin-left: 2em"><i>dev</i>, device inode resides
|
||||
on;<br>
|
||||
<i>ino</i>, inode's number;<br>
|
||||
<i>mode</i>, inode protection mode (<small>values could be
|
||||
<tt>file</tt>, <tt>directory</tt>, <tt>link</tt>, <tt>socket</tt>,
|
||||
<tt>named pipe</tt>, <tt>char device</tt>, <tt>block device</tt> or
|
||||
<tt>other</tt></small>);<br>
|
||||
<i>nlink</i>, number of hard links to the file;<br>
|
||||
<i>uid</i>, user-id of owner;<br>
|
||||
<i>gid</i>, group-id of owner;<br>
|
||||
<i>rdev</i>, device type, for special file inode;<br>
|
||||
<i>access</i>, time of last access;<br>
|
||||
<i>modification</i>, time of last data modification;<br>
|
||||
<i>change</i>, time of last file status change;<br>
|
||||
<i>size</i>, file size, in bytes;<br>
|
||||
<i>blocks</i>, block allocated for file; (Unix only)<br>
|
||||
<i>blksize</i>, optimal file system I/O blocksize; (Unix only)<br>
|
||||
</div>
|
||||
|
||||
Returns a table with file attributes described above. <a name=
|
||||
"chdir"></a></li>
|
||||
|
||||
<li><b><tt>lfs.chdir (path)</tt></b><br>
|
||||
Changes the current working directory to the given
|
||||
<tt>path</tt>.<br>
|
||||
Returns <tt>true</tt> in case of success or <tt>nil</tt> plus an
|
||||
error string. <a name="getcwd"></a></li>
|
||||
|
||||
<li><b><tt>lfs.currentdir ()</tt></b><br>
|
||||
Returns a string with the current working directory or
|
||||
<code>nil</code> plus an error string. <a name="dir"></a></li>
|
||||
|
||||
<li><b><tt>lfs.dir (path)</tt></b><br>
|
||||
Lua iterator over the entries of a given directory. Raises an
|
||||
error if <tt>path</tt> is not a directory. <a name="lock"></a></li>
|
||||
|
||||
<li><b><tt>lfs.lock (filehandle, mode[, start[,
|
||||
length]])</tt></b><br>
|
||||
Locks a file or a part of it. This function works on <em>open
|
||||
files</em>; the file handle should be specified as the first
|
||||
argument. The string <code>mode</code> could be either
|
||||
<code>r</code> (for a read/shared lock) or <code>w</code> (for a
|
||||
write/exclusive lock). The optional arguments <code>start</code>
|
||||
and <code>length</code> can be used to specify a starting point and
|
||||
its length; both should be numbers.<br>
|
||||
Returns a boolean indicating if the operation was successful; in
|
||||
case of error, it returns <code>false</code> plus an error string.
|
||||
<a name="mkdir"></a></li>
|
||||
|
||||
<li><b><tt>lfs.mkdir (dirname)</tt></b><br>
|
||||
Creates a new directory. The argument is the name of the new
|
||||
directory.<br>
|
||||
Returns a boolean indicating whether the operation succeeds or not
|
||||
(in this case, an error string is returned too). <a name=
|
||||
"unlock"></a></li>
|
||||
|
||||
<li><b><tt>lfs.unlock (filehandle[, start[, length]])</tt></b><br>
|
||||
Unlocks a file or a part of it. This function works on <em>open
|
||||
files</em>; the file handle should be specified as the first
|
||||
argument. The optional arguments <code>start</code> and
|
||||
<code>length</code> can be used to specify a starting point and its
|
||||
length; both should be numbers.<br>
|
||||
Returns a boolean indicating if the operation was successful; in
|
||||
case of error, it returns <code>false</code> plus a string
|
||||
describing the error.</li>
|
||||
</ul>
|
||||
|
||||
<a name="example"></a>
|
||||
|
||||
<h2>Example</h2>
|
||||
|
||||
<pre>
|
||||
require"lfs"
|
||||
|
||||
function attrdir (path)
|
||||
for file in lfs.dir(path) do
|
||||
if file ~= "." and file ~= ".." then
|
||||
local f = path..'/'..file
|
||||
print ("\t "..f)
|
||||
local attr = lfs.attributes (f)
|
||||
assert (type(attr) == "table")
|
||||
if attr.mode == "directory" then
|
||||
attrdir (f)
|
||||
else
|
||||
for name, value in pairs(attr) do
|
||||
print (name, value)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
attrdir (".")
|
||||
</pre>
|
||||
|
||||
<a name="contents"></a>
|
||||
|
||||
<h2>Contents</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="#introduction">Introduction</a></li>
|
||||
|
||||
<li><a href="#reference">Reference</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="#chdir">chdir</a></li>
|
||||
|
||||
<li><a href="#currentdir">currentdir</a></li>
|
||||
|
||||
<li><a href="#dir">dir</a></li>
|
||||
|
||||
<li><a href="#lock">lock</a></li>
|
||||
|
||||
<li><a href="#mkdir">mkdir</a></li>
|
||||
|
||||
<li><a href="#unlock">unlock</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li><a href="#examples">Examples</a></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<center><small><a href="index.html">home</a> · <a href=
|
||||
"#introduction">introduction</a> · <a href=
|
||||
"#reference">reference</a> · <a href=
|
||||
"#example">example</a></small></center>
|
||||
|
||||
<hr>
|
||||
<small>$Id: manual.html,v 1.7 2004/11/10 14:09:45 tuler Exp
|
||||
$</small>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<! See Copyright Notice in license.html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>LuaFileSystem</title>
|
||||
<style type="text/css">
|
||||
ul { list-style-type: disc };
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<table border=0 cellspacing=2 cellpadding=2>
|
||||
<tr><td align=center><a href="http://www.keplerproject.org/luafilesystem">
|
||||
<img border=0 alt="LuaFileSystem logo" src="luafilesystem.png"></a>
|
||||
<tr><td align=center><big><b>LuaFileSystem Reference Manual</b></big>
|
||||
<tr><td align=center valign=top>File system library for the
|
||||
<a href="http://www.lua.org">Lua</a>
|
||||
programming language
|
||||
</table>
|
||||
</center>
|
||||
<p>
|
||||
|
||||
<center><small>
|
||||
<a href="index.html">home</a> ·
|
||||
<a href="#introduction">introduction</a> ·
|
||||
<a href="#reference">reference</a> ·
|
||||
<a href="#example">example</a>
|
||||
</small></center>
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
|
||||
<a name="introduction"></a>
|
||||
<h2>Introduction</h2>
|
||||
|
||||
<p>
|
||||
LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
|
||||
developed to complement the set of functions related to file systems offered
|
||||
by the standard Lua distribution.
|
||||
<p>
|
||||
LuaFileSystem is free software and uses the same
|
||||
<a href="license.html">license</a>
|
||||
as Lua 5.0.
|
||||
</p>
|
||||
|
||||
|
||||
<a name="reference"></a>
|
||||
<h2>Reference</h2>
|
||||
|
||||
<p>
|
||||
LuaFileSystem offers the following functions:
|
||||
<ul>
|
||||
<a name="chdir"></a>
|
||||
<li> <b><tt>luafilesystem.chdir (path)</tt></b> <br>
|
||||
Changes the current
|
||||
working directory to the given <tt>path</tt>.
|
||||
|
||||
<a name="getcwd"></a>
|
||||
<li> <b><tt>luafilesystem.currentdir ()</tt></b> <br>
|
||||
Returns the current
|
||||
working directory or <code>nil</code> plus an error string.
|
||||
|
||||
<a name="dir"></a>
|
||||
<li> <b><tt>luafilesystem.dir (path)</tt></b> <br>
|
||||
Lua iterator over the entries
|
||||
of a given directory.
|
||||
|
||||
<a name="lock"></a>
|
||||
<li> <b><tt>luafilesystem.lock (filehandle, mode[, start[, length]])</tt></b> <br>
|
||||
Locks a file or a part of it.
|
||||
This function works on <em>open files</em>;
|
||||
the file handle should be specified as the first argument.
|
||||
The string <code>mode</code> could be either <code>r</code> (for a
|
||||
read/shared lock) or <code>w</code> (for a write/exclusive lock).
|
||||
The optional arguments <code>start</code> and <code>length</code> can be
|
||||
used to specify a starting point and its length;
|
||||
both should be numbers.
|
||||
This function returns a boolean indicating if the operation was successful;
|
||||
in case of error, it returns <code>false</code> plus a string describing the
|
||||
error.
|
||||
|
||||
<a name="mkdir"></a>
|
||||
<li> <b><tt>luafilesystem.mkdir (dirname)</tt></b> <br>
|
||||
Creates a new directory.
|
||||
The argument is the name of the new directory.
|
||||
|
||||
<a name="unlock"></a>
|
||||
<li> <b><tt>luafilesystem.unlock (filehandle[, start[, length]])</tt></b> <br>
|
||||
Unlocks a file or a part of it.
|
||||
This function works on <em>open files</em>;
|
||||
the file handle should be specified as the first argument.
|
||||
The optional arguments <code>start</code> and <code>length</code> can be
|
||||
used to specify a starting point and its length;
|
||||
both should be numbers.
|
||||
This function returns a boolean indicating if the operation was successful;
|
||||
in case of error, it returns <code>false</code> plus a string describing the
|
||||
error.
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="example"></a>
|
||||
<h2>Example</h2>
|
||||
|
||||
|
||||
<a name="contents"></a>
|
||||
<h2>Contents</h2>
|
||||
<p>
|
||||
<ul>
|
||||
<li> <a href="#introduction">Introduction</a>
|
||||
<li> <a href="#reference">Reference</a>
|
||||
<ul>
|
||||
<li> <a href="#chdir">chdir</a>
|
||||
<li> <a href="#currentdir">currentdir</a>
|
||||
<li> <a href="#dir">dir</a>
|
||||
<li> <a href="#lock">lock</a>
|
||||
<li> <a href="#mkdir">mkdir</a>
|
||||
<li> <a href="#unlock">unlock</a>
|
||||
</ul>
|
||||
<li> <a href="#examples">Examples</a>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
<center><small>
|
||||
<a href="index.html">home</a> ·
|
||||
<a href="#introduction">introduction</a> ·
|
||||
<a href="#reference">reference</a> ·
|
||||
<a href="#example">example</a>
|
||||
</small></center>
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
<small>
|
||||
$Id: manual.html,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
</small>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
/*
|
||||
** File system manipulation library.
|
||||
** This library offers these functions:
|
||||
** lfs.attributes (filepath [, attributename])
|
||||
** lfs.chdir (path)
|
||||
** lfs.currentdir ()
|
||||
** lfs.dir (path)
|
||||
** lfs.mkdir (path)
|
||||
** lfs.lock (fh, mode)
|
||||
** lfs.unlock (fh)
|
||||
** luafilesystem.attributes (filepath [, attributename])
|
||||
** luafilesystem.chdir (path)
|
||||
** luafilesystem.currentdir ()
|
||||
** luafilesystem.dir (path)
|
||||
** luafilesystem.mkdir (path)
|
||||
** luafilesystem.lock (fh, mode)
|
||||
** luafilesystem.unlock (fh)
|
||||
**
|
||||
** $Id: lfs.c,v 1.17 2005/01/19 14:28:58 tomas Exp $
|
||||
** $Id: luafilesystem.c,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <direct.h>
|
||||
@@ -27,14 +26,14 @@
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#include "lua.h"
|
||||
#include "lauxlib.h"
|
||||
#include "lualib.h"
|
||||
#include "compat-5.1.h"
|
||||
#include <lua.h>
|
||||
#include <lauxlib.h>
|
||||
#include <lualib.h>
|
||||
|
||||
#include "lfs.h"
|
||||
#include "luafilesystem.h"
|
||||
|
||||
/* Define 'strerror' for systems that do not implement it */
|
||||
#ifdef NO_STRERROR
|
||||
@@ -64,15 +63,10 @@ typedef struct dir_data {
|
||||
*/
|
||||
static int change_dir (lua_State *L) {
|
||||
const char *path = luaL_checkstring(L, 1);
|
||||
if (chdir(path)) {
|
||||
lua_pushnil (L);
|
||||
lua_pushfstring (L,"Unable to change working directory to '%s'\n%s\n",
|
||||
if (chdir(path))
|
||||
luaL_error(L,"Unable to change working directory to '%s'\n%s\n",
|
||||
path, chdir_error);
|
||||
return 2;
|
||||
} else {
|
||||
lua_pushboolean (L, 1);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -131,7 +125,7 @@ static int _file_lock (lua_State *L, FILE *fh, const char *mode, const long star
|
||||
case 'r': lkmode = _LK_NBLCK; break;
|
||||
case 'w': lkmode = _LK_NBLCK; break;
|
||||
case 'u': lkmode = _LK_UNLCK; break;
|
||||
default : return luaL_error (L, "%s: invalid mode", funcname);
|
||||
default : luaL_error (L, "%s: invalid mode", funcname);
|
||||
}
|
||||
if (!len) {
|
||||
fseek (fh, 0L, SEEK_END);
|
||||
@@ -145,7 +139,7 @@ static int _file_lock (lua_State *L, FILE *fh, const char *mode, const long star
|
||||
case 'w': f.l_type = F_WRLCK; break;
|
||||
case 'r': f.l_type = F_RDLCK; break;
|
||||
case 'u': f.l_type = F_UNLCK; break;
|
||||
default : return luaL_error (L, "%s: invalid mode", funcname);
|
||||
default : luaL_error (L, "%s: invalid mode", funcname);
|
||||
}
|
||||
f.l_whence = SEEK_SET;
|
||||
f.l_start = (off_t)start;
|
||||
@@ -238,11 +232,7 @@ static int make_dir (lua_State *L) {
|
||||
fail = mkdir (path, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP |
|
||||
S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH );
|
||||
#endif
|
||||
lua_pushboolean (L, !fail);
|
||||
if (fail) {
|
||||
lua_pushfstring (L, "%s", strerror(errno));
|
||||
return 2;
|
||||
}
|
||||
lua_pushboolean (L, fail);
|
||||
umask (oldmask);
|
||||
return 1;
|
||||
}
|
||||
@@ -344,149 +334,7 @@ static int dir_create_meta (lua_State *L) {
|
||||
}
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifndef S_ISDIR
|
||||
#define S_ISDIR(mode) (mode&_S_IFDIR)
|
||||
#endif
|
||||
#ifndef S_ISREG
|
||||
#define S_ISREG(mode) (mode&_S_IFREG)
|
||||
#endif
|
||||
#ifndef S_ISLNK
|
||||
#define S_ISLNK(mode) (0)
|
||||
#endif
|
||||
#ifndef S_ISSOCK
|
||||
#define S_ISSOCK(mode) (0)
|
||||
#endif
|
||||
#ifndef S_ISFIFO
|
||||
#define S_ISFIFO(mode) (0)
|
||||
#endif
|
||||
#ifndef S_ISCHR
|
||||
#define S_ISCHR(mode) (mode&_S_IFCHR)
|
||||
#endif
|
||||
#ifndef S_ISBLK
|
||||
#define S_ISBLK(mode) (0)
|
||||
#endif
|
||||
#endif
|
||||
/*
|
||||
** Convert the inode protection mode to a string.
|
||||
*/
|
||||
#ifdef WIN32
|
||||
static const char *mode2string (unsigned short mode) {
|
||||
#else
|
||||
static const char *mode2string (mode_t mode) {
|
||||
#endif
|
||||
if ( S_ISREG(mode) )
|
||||
return "file";
|
||||
else if ( S_ISDIR(mode) )
|
||||
return "directory";
|
||||
else if ( S_ISLNK(mode) )
|
||||
return "link";
|
||||
else if ( S_ISSOCK(mode) )
|
||||
return "socket";
|
||||
else if ( S_ISFIFO(mode) )
|
||||
return "named pipe";
|
||||
else if ( S_ISCHR(mode) )
|
||||
return "char device";
|
||||
else if ( S_ISBLK(mode) )
|
||||
return "block device";
|
||||
else
|
||||
return "other";
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** Get file information
|
||||
*/
|
||||
static int file_info (lua_State *L) {
|
||||
struct stat info;
|
||||
const char *file = luaL_checkstring (L, 1);
|
||||
|
||||
if (stat(file, &info)) {
|
||||
lua_pushnil (L);
|
||||
lua_pushfstring (L, "cannot obtain information from file `%s'", file);
|
||||
return 2;
|
||||
}
|
||||
lua_newtable (L);
|
||||
/* device inode resides on */
|
||||
lua_pushliteral (L, "dev");
|
||||
lua_pushnumber (L, (lua_Number)info.st_dev);
|
||||
lua_rawset (L, -3);
|
||||
/* inode's number */
|
||||
lua_pushliteral (L, "ino");
|
||||
lua_pushnumber (L, (lua_Number)info.st_ino);
|
||||
lua_rawset (L, -3);
|
||||
/* inode protection mode */
|
||||
lua_pushliteral (L, "mode");
|
||||
lua_pushstring (L, mode2string (info.st_mode));
|
||||
lua_rawset (L, -3);
|
||||
/* number of hard links to the file */
|
||||
lua_pushliteral (L, "nlink");
|
||||
lua_pushnumber (L, (lua_Number)info.st_nlink);
|
||||
lua_rawset (L, -3);
|
||||
/* user-id of owner */
|
||||
lua_pushliteral (L, "uid");
|
||||
lua_pushnumber (L, (lua_Number)info.st_uid);
|
||||
lua_rawset (L, -3);
|
||||
/* group-id of owner */
|
||||
lua_pushliteral (L, "gid");
|
||||
lua_pushnumber (L, (lua_Number)info.st_gid);
|
||||
lua_rawset (L, -3);
|
||||
/* device type, for special file inode */
|
||||
lua_pushliteral (L, "rdev");
|
||||
lua_pushnumber (L, (lua_Number)info.st_rdev);
|
||||
lua_rawset (L, -3);
|
||||
/* time of last access */
|
||||
lua_pushliteral (L, "access");
|
||||
lua_pushnumber (L, info.st_atime);
|
||||
lua_rawset (L, -3);
|
||||
/* time of last data modification */
|
||||
lua_pushliteral (L, "modification");
|
||||
lua_pushnumber (L, info.st_mtime);
|
||||
lua_rawset (L, -3);
|
||||
/* time of last file status change */
|
||||
lua_pushliteral (L, "change");
|
||||
lua_pushnumber (L, info.st_ctime);
|
||||
lua_rawset (L, -3);
|
||||
/* file size, in bytes */
|
||||
lua_pushliteral (L, "size");
|
||||
lua_pushnumber (L, (lua_Number)info.st_size);
|
||||
lua_rawset (L, -3);
|
||||
#ifndef WIN32
|
||||
/* blocks allocated for file */
|
||||
lua_pushliteral (L, "blocks");
|
||||
lua_pushnumber (L, (lua_Number)info.st_blocks);
|
||||
lua_rawset (L, -3);
|
||||
/* optimal file system I/O blocksize */
|
||||
lua_pushliteral (L, "blksize");
|
||||
lua_pushnumber (L, (lua_Number)info.st_blksize);
|
||||
lua_rawset (L, -3);
|
||||
#endif
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** Assumes the table is on top of the stack.
|
||||
*/
|
||||
static void set_info (lua_State *L) {
|
||||
lua_pushliteral (L, "_COPYRIGHT");
|
||||
lua_pushliteral (L, "Copyright (C) 2004-2005 Kepler Project");
|
||||
lua_settable (L, -3);
|
||||
lua_pushliteral (L, "_DESCRIPTION");
|
||||
lua_pushliteral (L, "LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution");
|
||||
lua_settable (L, -3);
|
||||
lua_pushliteral (L, "_NAME");
|
||||
lua_pushliteral (L, "LuaFileSystem");
|
||||
lua_settable (L, -3);
|
||||
lua_pushliteral (L, "_VERSION");
|
||||
lua_pushliteral (L, "1.0");
|
||||
lua_settable (L, -3);
|
||||
}
|
||||
|
||||
|
||||
static const struct luaL_reg fslib[] = {
|
||||
{"attributes", file_info},
|
||||
{"chdir", change_dir},
|
||||
{"currentdir", get_dir},
|
||||
{"dir", dir_iter_factory},
|
||||
@@ -496,9 +344,8 @@ static const struct luaL_reg fslib[] = {
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
||||
int luaopen_lfs (lua_State *L) {
|
||||
int luaopen_luafilesystem (lua_State *L) {
|
||||
dir_create_meta (L);
|
||||
luaL_openlib (L, "lfs", fslib, 0);
|
||||
set_info (L);
|
||||
luaL_openlib (L, "luafilesystem", fslib, 0);
|
||||
return 1;
|
||||
}
|
||||
5
luafilesystem.def
Normal file
5
luafilesystem.def
Normal file
@@ -0,0 +1,5 @@
|
||||
LIBRARY luafilesystem.dll
|
||||
DESCRIPTION "LuaFilesystem"
|
||||
VERSION 1.0
|
||||
EXPORTS
|
||||
luaopen_luafilesystem
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Define 'chdir' for systems that do not implement it */
|
||||
/* $Id: lfs.h,v 1.1 2004/07/29 14:26:33 tomas Exp $ */
|
||||
/* $Id: luafilesystem.h,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $ */
|
||||
#ifdef NO_CHDIR
|
||||
#define chdir(p) (-1)
|
||||
#define chdir_error "Function 'chdir' not provided by system"
|
||||
@@ -7,4 +7,4 @@
|
||||
#define chdir_error strerror(errno)
|
||||
#endif
|
||||
|
||||
int luaopen_lfs (lua_State *L);
|
||||
int luaopen_filesystem (lua_State *L);
|
||||
8
t_luafilesystem.lua
Normal file
8
t_luafilesystem.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- $Id: t_luafilesystem.lua,v 1.1.1.1 2004/07/27 14:15:24 tomas Exp $
|
||||
if not luafilesystem and loadlib then
|
||||
local libname = "LIB_NAME"
|
||||
local libopen = "luaopen_luafilesystem"
|
||||
local init, err1, err2 = loadlib (libname, libopen)
|
||||
assert (init, (err1 or '')..(err2 or ''))
|
||||
init ()
|
||||
end
|
||||
26
teste.lua
Normal file
26
teste.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/local/bin/lua -i
|
||||
|
||||
require"luafilesystem"
|
||||
|
||||
print(luafilesystem.version)
|
||||
|
||||
function p ()
|
||||
local fh = assert (io.open ("teste", 'r'))
|
||||
assert (luafilesystem.lock (fh, 'r'))
|
||||
print (fh:read"*a")
|
||||
fh:close ()
|
||||
end
|
||||
|
||||
function wr ()
|
||||
fh = assert (io.open ("teste", 'w'))
|
||||
assert (luafilesystem.lock (fh, 'w'))
|
||||
end
|
||||
|
||||
function op ()
|
||||
fh = assert (io.open ("teste", 'r'))
|
||||
assert (luafilesystem.lock (fh, 'r'))
|
||||
end
|
||||
|
||||
function fw (x)
|
||||
assert (fh:write (x))
|
||||
end
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/usr/local/bin/lua
|
||||
|
||||
local tmp = "/tmp"
|
||||
local sep = "/"
|
||||
local upper = ".."
|
||||
|
||||
require"lfs"
|
||||
|
||||
function attrdir (path)
|
||||
for file in lfs.dir(path) do
|
||||
if file ~= "." and file ~= ".." then
|
||||
local f = path..'/'..file
|
||||
print ("\t=> "..f.." <=")
|
||||
local attr = lfs.attributes (f)
|
||||
assert (type(attr) == "table")
|
||||
if attr.mode == "directory" then
|
||||
attrdir (f)
|
||||
else
|
||||
for name, value in pairs(attr) do
|
||||
print (name, value)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Checking changing directories
|
||||
local current = assert (lfs.currentdir())
|
||||
local reldir = string.gsub (current, "^.*%"..sep.."([^"..sep.."])$", "%1")
|
||||
assert (lfs.chdir (upper), "could not change to upper directory")
|
||||
assert (lfs.chdir (reldir), "could not change back to current directory")
|
||||
assert (lfs.currentdir() == current, "error trying to change directories")
|
||||
assert (lfs.chdir ("this couldn't be an actual directory") == nil, "could change to a non-existent directory")
|
||||
-- Changing creating and removing directories
|
||||
local tmpdir = tmp.."/lfs_tmp_dir"
|
||||
assert (lfs.mkdir (tmpdir), "could not make a new directory")
|
||||
local attrib, errmsg = lfs.attributes (tmpdir)
|
||||
if not attrib then
|
||||
error ("could not get attributes of file `"..tmpdir.."':\n"..errmsg)
|
||||
else
|
||||
-- Change access time
|
||||
assert (lfs.touch (tmpdir, 11))
|
||||
local new_att = assert (lfs.attributes (tmpdir))
|
||||
assert (new_att.access == 11, "could not set access time")
|
||||
assert (new_att.modification == 11, "could not set modification time")
|
||||
-- Change access and modification time
|
||||
assert (lfs.touch (tmpdir, 33, 22))
|
||||
local new_att = assert (lfs.attributes (tmpdir))
|
||||
assert (new_att.access == 33, "could not set access time")
|
||||
assert (new_att.modification == 22, "could not set modification time")
|
||||
-- Restore access time to current value
|
||||
assert (lfs.touch (tmpdir))
|
||||
new_att = assert (lfs.attributes (tmpdir))
|
||||
assert (new_att.access == attrib.access)
|
||||
assert (new_att.modification == attrib.modification)
|
||||
end
|
||||
assert (os.remove (tmpdir), "could not remove new directory")
|
||||
assert (lfs.mkdir (tmpdir.."/lfs_tmp_dir") == false, "could create a directory inside a non-existent one")
|
||||
--
|
||||
assert (lfs.attributes ("this couldn't be an actual file") == nil, "could get attributes of a non-existent file")
|
||||
assert (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory")
|
||||
print"Ok!"
|
||||
@@ -1,5 +0,0 @@
|
||||
LIBRARY lfs.dll
|
||||
DESCRIPTION "LuaFileSystem"
|
||||
VERSION 1.0
|
||||
EXPORTS
|
||||
luaopen_lfs
|
||||
@@ -1,33 +0,0 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "luafilesystem_dll"=.\luafilesystem_dll.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
begin source code control
|
||||
luafilesystem
|
||||
..
|
||||
end source code control
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="luafilesystem_dll" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=luafilesystem_dll - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "luafilesystem_dll.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "luafilesystem_dll.mak" CFG="luafilesystem_dll - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "luafilesystem_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "luafilesystem_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName "luafilesystem_dll"
|
||||
# PROP Scc_LocalPath ".."
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "luafilesystem_dll - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../lib/vc6"
|
||||
# PROP Intermediate_Dir "luafilesystem_dll/Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../lua/include" /I "../../compat" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x416 /d "NDEBUG"
|
||||
# ADD RSC /l 0x416 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
||||
# ADD LINK32 lua50.lib lualib50.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../bin/vc6/lfs.dll" /libpath:"../../lua/lib/vc6"
|
||||
|
||||
!ELSEIF "$(CFG)" == "luafilesystem_dll - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "../lib/vc6"
|
||||
# PROP Intermediate_Dir "luafilesystem_dll/Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../lua/include" /I "../../compat" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x416 /d "_DEBUG"
|
||||
# ADD RSC /l 0x416 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 lua50d.lib lualib50d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../bin/vc6/lfsd.dll" /pdbtype:sept /libpath:"../../lua/lib/vc6"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "luafilesystem_dll - Win32 Release"
|
||||
# Name "luafilesystem_dll - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\..\compat\compat-5.1.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\lfs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\lfs.def
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\..\compat\compat-5.1.h"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\lfs.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
Reference in New Issue
Block a user