mirror of
https://github.com/lunarmodules/luafilesystem.git
synced 2026-07-24 12:23:08 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c16dc4634 | ||
|
|
dff01ac3c9 | ||
|
|
cdfd06b4ea | ||
|
|
db7e8b9133 | ||
|
|
d931b9b2bb | ||
|
|
b66ab2cae9 | ||
|
|
78f28b6468 | ||
|
|
25f8aa1936 | ||
|
|
804e976407 | ||
|
|
d219de7885 | ||
|
|
ed97af80fb | ||
|
|
895e9daf27 | ||
|
|
50f17597b3 | ||
|
|
24fdbc0a66 |
17
Makefile
17
Makefile
@@ -1,7 +1,7 @@
|
|||||||
# $Id: Makefile,v 1.30 2007/06/07 01:28:08 tomas Exp $
|
# $Id: Makefile,v 1.32 2008/02/11 22:42:21 carregal Exp $
|
||||||
|
|
||||||
T= lfs
|
T= lfs
|
||||||
V= 1.3.0
|
V= 1.4.0
|
||||||
CONFIG= ./config
|
CONFIG= ./config
|
||||||
|
|
||||||
include $(CONFIG)
|
include $(CONFIG)
|
||||||
@@ -9,15 +9,14 @@ include $(CONFIG)
|
|||||||
SRCS= src/$T.c
|
SRCS= src/$T.c
|
||||||
OBJS= src/$T.o
|
OBJS= src/$T.o
|
||||||
|
|
||||||
lib: src/$(LIBNAME)
|
lib: src/lfs.so
|
||||||
|
|
||||||
src/$(LIBNAME): $(OBJS)
|
src/lfs.so: $(OBJS)
|
||||||
export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS)
|
export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/lfs.so $(OBJS)
|
||||||
|
|
||||||
install: src/$(LIBNAME)
|
install: src/lfs.so
|
||||||
mkdir -p $(LUA_LIBDIR)
|
mkdir -p $(LUA_LIBDIR)
|
||||||
cp src/$(LIBNAME) $(LUA_LIBDIR)
|
cp src/lfs.so $(LUA_LIBDIR)
|
||||||
cd $(LUA_LIBDIR); ln -f -s $(LIBNAME) $T.so
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f src/$(LIBNAME) $(OBJS)
|
rm -f src/lfs.so $(OBJS)
|
||||||
|
|||||||
20
Makefile.win
20
Makefile.win
@@ -1,24 +1,26 @@
|
|||||||
# $Id: Makefile.win,v 1.5 2007/08/30 14:38:07 tomas Exp $
|
# $Id: Makefile.win,v 1.10 2008/02/13 22:08:31 carregal Exp $
|
||||||
|
|
||||||
T= lfs
|
T= lfs
|
||||||
V= 1.3.0
|
V= 1.4.0
|
||||||
|
|
||||||
include config.win
|
include config.win
|
||||||
|
|
||||||
SRCS= src\$T.c
|
SRCS= src\$T.c
|
||||||
OBJS= src\$T.obj
|
OBJS= src\$T.obj
|
||||||
|
|
||||||
lib: src\$(LIBNAME)
|
lib: src\lfs.dll
|
||||||
|
|
||||||
.c.obj:
|
.c.obj:
|
||||||
$(CC) /c /Fo$@ $(CFLAGS) $<
|
$(CC) /c /Fo$@ $(CFLAGS) $<
|
||||||
|
|
||||||
src\$(LIBNAME): $(OBJS)
|
src\lfs.dll: $(OBJS)
|
||||||
link /dll /def:src\$T.def /out:src\$(LIBNAME) $(OBJS) $(LUA_LIB)
|
link /dll /def:src\$T.def /out:src\lfs.dll $(OBJS) "$(LUA_LIB)"
|
||||||
|
IF EXIST src\lfs.dll.manifest mt -manifest src\lfs.dll.manifest -outputresource:src\lfs.dll;2
|
||||||
|
|
||||||
install: src\$(LIBNAME)
|
install: src\lfs.dll
|
||||||
IF NOT EXIST $(LUA_LIBDIR) mkdir $(LUA_LIBDIR)
|
IF NOT EXIST "$(LUA_LIBDIR)" mkdir "$(LUA_LIBDIR)"
|
||||||
copy src\$(LIBNAME) $(LUA_LIBDIR)
|
copy src\lfs.dll "$(LUA_LIBDIR)"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del src\$(LIBNAME) $(OBJS) src\$T.lib src\$T.exp
|
del src\lfs.dll $(OBJS) src\$T.lib src\$T.exp
|
||||||
|
IF EXIST src\lfs.dll.manifest del src\lfs.dll.manifest
|
||||||
8
README
8
README
@@ -1,5 +1,5 @@
|
|||||||
LuaFileSystem - File System Library for Lua
|
LuaFileSystem - File System Library for Lua
|
||||||
Copyright 2003-2007 Kepler Project
|
Copyright 2003 Kepler Project
|
||||||
http://www.keplerproject.org/luafilesystem
|
http://www.keplerproject.org/luafilesystem
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@@ -10,7 +10,11 @@ related to file systems offered by the standard Lua distribution.
|
|||||||
LuaFileSystem offers a portable way to access the underlying directory structure and file attributes.
|
LuaFileSystem offers a portable way to access the underlying directory structure and file attributes.
|
||||||
LuaFileSystem is free software and uses the same license as Lua 5.1
|
LuaFileSystem is free software and uses the same license as Lua 5.1
|
||||||
|
|
||||||
Current version is 1.3.0
|
Current version is 1.4.0
|
||||||
|
|
||||||
|
LuaRocks Installation
|
||||||
|
---------------------
|
||||||
|
luarocks install luafilesystem
|
||||||
|
|
||||||
Unix Installation
|
Unix Installation
|
||||||
-----------------
|
-----------------
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>LuaFileSystem</title>
|
<title>LuaFileSystem</title>
|
||||||
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
||||||
@@ -94,7 +94,7 @@ attrdir (".")
|
|||||||
|
|
||||||
<div id="about">
|
<div id="about">
|
||||||
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
||||||
<p><small>$Id: examples.html,v 1.7 2007/10/26 21:44:43 carregal Exp $</small></p>
|
<p><small>$Id: examples.html,v 1.8 2007/12/14 15:28:04 carregal Exp $</small></p>
|
||||||
</div> <!-- id="about" -->
|
</div> <!-- id="about" -->
|
||||||
|
|
||||||
</div> <!-- id="container" -->
|
</div> <!-- id="container" -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>LuaFileSystem</title>
|
<title>LuaFileSystem</title>
|
||||||
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
||||||
@@ -71,20 +71,31 @@ the underlying directory structure and file attributes.</p>
|
|||||||
|
|
||||||
<h2><a name="status"></a>Status</h2>
|
<h2><a name="status"></a>Status</h2>
|
||||||
|
|
||||||
<p>Current version is 1.3.0. It was developed for Lua 5.1.</p>
|
<p>Current version is 1.4.0. It was developed for Lua 5.1.</p>
|
||||||
|
|
||||||
<h2><a name="download"></a>Download</h2>
|
<h2><a name="download"></a>Download</h2>
|
||||||
|
|
||||||
<p>LuaFileSystem source can be downloaded from its
|
<p>LuaFileSystem source can be downloaded from its
|
||||||
<a href="http://luaforge.net/projects/luafilesystem/files">Lua Forge</a>
|
<a href="http://luaforge.net/projects/luafilesystem/files">Lua Forge</a>
|
||||||
page. If you are using
|
page. If you are using
|
||||||
<a href="http://luabinaries.luaforge.net">LuaBinaries</a> 5.1.2 a Windows binary
|
<a href="http://luabinaries.luaforge.net">LuaBinaries</a> 5.1.3 a Windows binary
|
||||||
version of LuaFileSystem can be found at the same LuaForge page.</p>
|
version of LuaFileSystem (compiled with Visual Studio 2005 Express) can be found at the same LuaForge page.</p>
|
||||||
|
|
||||||
<h2><a name="history"></a>History</h2>
|
<h2><a name="history"></a>History</h2>
|
||||||
|
|
||||||
<dl class="history">
|
<dl class="history">
|
||||||
<dt><strong>Version 1.3.0</strong> [26/Oct/2007]</dt>
|
<dt><strong>Version 1.4.0</strong> [13/Feb/2008]</dt>
|
||||||
|
<dd>
|
||||||
|
<ul>
|
||||||
|
<li><a href="manual.html#attributes"><code>lfs.attributes</code></a>
|
||||||
|
raises an error if attribute does not exist</li>
|
||||||
|
<li>added function
|
||||||
|
<a href="manual.html#setmode"><code>lfs.setmode</code></a>
|
||||||
|
(works only in non Windows systems).</li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.3/">Version 1.3.0</a></strong> [26/Oct/2007]</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<ul>
|
<ul>
|
||||||
<li>added function
|
<li>added function
|
||||||
@@ -107,14 +118,14 @@ version of LuaFileSystem can be found at the same LuaForge page.</p>
|
|||||||
<a href="manual.html#attributes"><code>lfs.attributes</code></a></li>
|
<a href="manual.html#attributes"><code>lfs.attributes</code></a></li>
|
||||||
<li>added function
|
<li>added function
|
||||||
<a href="manual.html#rmdir"><code>lfs.rmdir</code></a></li>
|
<a href="manual.html#rmdir"><code>lfs.rmdir</code></a></li>
|
||||||
<li>bug correction on <code>lfs.dir</code></li>
|
<li>bug correction on <a href="manual.html#dir"><code>lfs.dir</code></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.1/">Version 1.1</a></strong> [30/May/2005]</dt>
|
<dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.1/">Version 1.1</a></strong> [30/May/2005]</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<ul>
|
<ul>
|
||||||
<li>added function <code>lfs.touch</code>.</li>
|
<li>added function <a href="manual.html#touch"><code>lfs.touch</code></a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
@@ -147,7 +158,7 @@ Comments are welcome!</p>
|
|||||||
|
|
||||||
<div id="about">
|
<div id="about">
|
||||||
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
||||||
<p><small>$Id: index.html,v 1.37 2007/10/26 21:44:43 carregal Exp $</small></p>
|
<p><small>$Id: index.html,v 1.40 2008/02/13 21:00:10 carregal Exp $</small></p>
|
||||||
</div> <!-- id="about" -->
|
</div> <!-- id="about" -->
|
||||||
|
|
||||||
</div> <!-- id="container" -->
|
</div> <!-- id="container" -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>LuaFileSystem</title>
|
<title>LuaFileSystem</title>
|
||||||
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
||||||
@@ -85,7 +85,7 @@ Ierusalimschy, André Carregal and Tomás Guisasola.
|
|||||||
The implementation is not derived from licensed software.</p>
|
The implementation is not derived from licensed software.</p>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
<p>Copyright © 2004-2007 Kepler Project.</p>
|
<p>Copyright © 2003 Kepler Project.</p>
|
||||||
|
|
||||||
<p>Permission is hereby granted, free of charge, to any person
|
<p>Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation
|
obtaining a copy of this software and associated documentation
|
||||||
@@ -113,7 +113,7 @@ SOFTWARE.</p>
|
|||||||
|
|
||||||
<div id="about">
|
<div id="about">
|
||||||
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
||||||
<p><small>$Id: license.html,v 1.11 2007/10/26 21:44:43 carregal Exp $</small></p>
|
<p><small>$Id: license.html,v 1.13 2008/02/11 22:42:21 carregal Exp $</small></p>
|
||||||
</div><!-- id="about" -->
|
</div><!-- id="about" -->
|
||||||
|
|
||||||
</div><!-- id="container" -->
|
</div><!-- id="container" -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>LuaFileSystem</title>
|
<title>LuaFileSystem</title>
|
||||||
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
|
||||||
@@ -74,7 +74,7 @@ and header files for the target version must be installed properly.
|
|||||||
<p>
|
<p>
|
||||||
LuaFileSystem offers a Makefile and a separate configuration file,
|
LuaFileSystem offers a Makefile and a separate configuration file,
|
||||||
<code>config</code>,
|
<code>config</code>,
|
||||||
which should be edited to suit your installation before runnig
|
which should be edited to suit your installation before running
|
||||||
<code>make</code>.
|
<code>make</code>.
|
||||||
The file has some definitions like paths to the external libraries,
|
The file has some definitions like paths to the external libraries,
|
||||||
compiler options and the like.
|
compiler options and the like.
|
||||||
@@ -82,12 +82,14 @@ compiler options and the like.
|
|||||||
|
|
||||||
<h2><a name="installation"></a>Installation</h2>
|
<h2><a name="installation"></a>Installation</h2>
|
||||||
|
|
||||||
<p>The LuaFileSystem compiled binary should be copied to a directory in your
|
<p>The easiest way to install LuaFileSystem is to use LuaRocks:</p>
|
||||||
<a href="http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath">C path</a>.</p>
|
|
||||||
|
|
||||||
<p>Windows users can use the binary version of LuaFileSystem
|
<pre class="example">
|
||||||
(<code>lfs.dll</code>) available at
|
luarocks install luafilesystem
|
||||||
<a href="http://luaforge.net/projects/luafilesystem/files">LuaForge</a>.</p>
|
</pre>
|
||||||
|
|
||||||
|
<p>If you prefer to install LuaFileSystem manually, the compiled binary should be copied to a directory in your
|
||||||
|
<a href="http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath">C path</a>.</p>
|
||||||
|
|
||||||
<h2><a name="reference"></a>Reference</h2>
|
<h2><a name="reference"></a>Reference</h2>
|
||||||
|
|
||||||
@@ -203,6 +205,12 @@ LuaFileSystem offers the following functions:
|
|||||||
Returns <code>true</code> if the operation was successful;
|
Returns <code>true</code> if the operation was successful;
|
||||||
in case of error, it returns <code>nil</code> plus an error string.</dd>
|
in case of error, it returns <code>nil</code> plus an error string.</dd>
|
||||||
|
|
||||||
|
<dt><a name="setmode"></a><strong><code>lfs.setmode (filepath, mode)</code></strong></dt>
|
||||||
|
<dd>Sets the writing mode for a file. The mode string can be either <code>binary</code> or <code>text</code>.
|
||||||
|
Returns the previous mode string for the file. This function is only available in Windows, so you may want to make sure that
|
||||||
|
<code>lfs.setmode</code> exists before using it.
|
||||||
|
</dd>
|
||||||
|
|
||||||
<dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt>
|
<dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt>
|
||||||
<dd>Identical to <a href="#attributes">lfs.attributes</a> except that
|
<dd>Identical to <a href="#attributes">lfs.attributes</a> except that
|
||||||
it obtains information about the link itself (not the file it refers to).
|
it obtains information about the link itself (not the file it refers to).
|
||||||
@@ -240,7 +248,7 @@ LuaFileSystem offers the following functions:
|
|||||||
|
|
||||||
<div id="about">
|
<div id="about">
|
||||||
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
|
||||||
<p><small>$Id: manual.html,v 1.37 2007/10/26 21:44:43 carregal Exp $</small></p>
|
<p><small>$Id: manual.html,v 1.40 2008/02/11 22:48:16 carregal Exp $</small></p>
|
||||||
</div> <!-- id="about" -->
|
</div> <!-- id="about" -->
|
||||||
|
|
||||||
</div> <!-- id="container" -->
|
</div> <!-- id="container" -->
|
||||||
|
|||||||
27
rockspecs/luafilesystem-1.3.0-1.rockspec
Normal file
27
rockspecs/luafilesystem-1.3.0-1.rockspec
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package = "LuaFileSystem"
|
||||||
|
version = "1.3.0-1"
|
||||||
|
source = {
|
||||||
|
url = "http://luaforge.net/frs/download.php/2679/luafilesystem-1.3.0.tar.gz"
|
||||||
|
}
|
||||||
|
description = {
|
||||||
|
summary = "File System Library for the Lua Programming Language",
|
||||||
|
detailed = [[
|
||||||
|
LuaFileSystem is a Lua library developed to complement the set of
|
||||||
|
functions related to file systems offered by the standard Lua
|
||||||
|
distribution. LuaFileSystem offers a portable way to access the
|
||||||
|
underlying directory structure and file attributes.
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
dependencies = {
|
||||||
|
"lua >= 5.1"
|
||||||
|
}
|
||||||
|
build = {
|
||||||
|
type = "make",
|
||||||
|
build_variables = {
|
||||||
|
LUA_INC = "$(LUA_INCDIR)",
|
||||||
|
LIB_OPTION = "$(LIBFLAG)"
|
||||||
|
},
|
||||||
|
install_variables = {
|
||||||
|
LUA_LIBDIR = "$(LIBDIR)"
|
||||||
|
}
|
||||||
|
}
|
||||||
27
rockspecs/luafilesystem-1.4.0-1.rockspec
Normal file
27
rockspecs/luafilesystem-1.4.0-1.rockspec
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package = "LuaFileSystem"
|
||||||
|
version = "1.4.0-1"
|
||||||
|
source = {
|
||||||
|
url = "http://luaforge.net/frs/download.php/2679/luafilesystem-1.3.0.tar.gz"
|
||||||
|
}
|
||||||
|
description = {
|
||||||
|
summary = "File System Library for the Lua Programming Language",
|
||||||
|
detailed = [[
|
||||||
|
LuaFileSystem is a Lua library developed to complement the set of
|
||||||
|
functions related to file systems offered by the standard Lua
|
||||||
|
distribution. LuaFileSystem offers a portable way to access the
|
||||||
|
underlying directory structure and file attributes.
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
dependencies = {
|
||||||
|
"lua >= 5.1"
|
||||||
|
}
|
||||||
|
build = {
|
||||||
|
type = "make",
|
||||||
|
build_variables = {
|
||||||
|
LUA_INC = "$(LUA_INCDIR)",
|
||||||
|
LIB_OPTION = "$(LIBFLAG)"
|
||||||
|
},
|
||||||
|
install_variables = {
|
||||||
|
LUA_LIBDIR = "$(LIBDIR)"
|
||||||
|
}
|
||||||
|
}
|
||||||
44
rockspecs/luafilesystem-cvs-1.rockspec
Normal file
44
rockspecs/luafilesystem-cvs-1.rockspec
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package = "LuaFileSystem"
|
||||||
|
version = "cvs-1"
|
||||||
|
source = {
|
||||||
|
url = "cvs://:pserver:anonymous:@cvs.luaforge.net:/cvsroot/luafilesystem",
|
||||||
|
cvs_tag = "HEAD"
|
||||||
|
}
|
||||||
|
description = {
|
||||||
|
summary = "File System Library for the Lua Programming Language",
|
||||||
|
detailed = [[
|
||||||
|
LuaFileSystem is a Lua library developed to complement the set of
|
||||||
|
functions related to file systems offered by the standard Lua
|
||||||
|
distribution. LuaFileSystem offers a portable way to access the
|
||||||
|
underlying directory structure and file attributes.
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
dependencies = {
|
||||||
|
"lua >= 5.1"
|
||||||
|
}
|
||||||
|
build = {
|
||||||
|
platforms = {
|
||||||
|
unix = {
|
||||||
|
type = "make",
|
||||||
|
build_variables = {
|
||||||
|
LIB_OPTION = "$(LIBFLAG)",
|
||||||
|
CFLAGS = "$(CFLAGS) -I$(LUA_INCDIR)",
|
||||||
|
},
|
||||||
|
install_variables = {
|
||||||
|
LUA_LIBDIR = "$(LIBDIR)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
win32 = {
|
||||||
|
type = "make",
|
||||||
|
build_variables = {
|
||||||
|
LUA_LIB = "$(LUA_LIBDIR)\\lua5.1.lib",
|
||||||
|
CFLAGS = "$(CFLAGS) /I$(LUA_INCDIR)",
|
||||||
|
},
|
||||||
|
install_variables = {
|
||||||
|
LUA_LIBDIR = "$(LIBDIR)",
|
||||||
|
LUA_DIR = "$(LUADIR)",
|
||||||
|
BIN_DIR = "$(BINDIR)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
77
src/lfs.c
77
src/lfs.c
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
** LuaFileSystem
|
** LuaFileSystem
|
||||||
** Copyright Kepler Project 2004-2007 (http://www.keplerproject.org/luafilesystem)
|
** Copyright Kepler Project 2003 (http://www.keplerproject.org/luafilesystem)
|
||||||
**
|
**
|
||||||
** File system manipulation library.
|
** File system manipulation library.
|
||||||
** This library offers these functions:
|
** This library offers these functions:
|
||||||
@@ -11,11 +11,12 @@
|
|||||||
** lfs.lock (fh, mode)
|
** lfs.lock (fh, mode)
|
||||||
** lfs.mkdir (path)
|
** lfs.mkdir (path)
|
||||||
** lfs.rmdir (path)
|
** lfs.rmdir (path)
|
||||||
|
** lfs.setmode (filepath, mode)
|
||||||
** lfs.symlinkattributes (filepath [, attributename]) -- thanks to Sam Roberts
|
** lfs.symlinkattributes (filepath [, attributename]) -- thanks to Sam Roberts
|
||||||
** lfs.touch (filepath [, atime [, mtime]])
|
** lfs.touch (filepath [, atime [, mtime]])
|
||||||
** lfs.unlock (fh)
|
** lfs.unlock (fh)
|
||||||
**
|
**
|
||||||
** $Id: lfs.c,v 1.42 2007/10/26 21:01:07 carregal Exp $
|
** $Id: lfs.c,v 1.47 2008/02/11 22:42:21 carregal Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@@ -29,6 +30,7 @@
|
|||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <sys/locking.h>
|
#include <sys/locking.h>
|
||||||
#include <sys/utime.h>
|
#include <sys/utime.h>
|
||||||
|
#include <fcntl.h>
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
@@ -68,6 +70,15 @@ typedef struct dir_data {
|
|||||||
} dir_data;
|
} dir_data;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define lfs_setmode(L,file,m) ((void)L, _setmode(_fileno(file), m))
|
||||||
|
#else
|
||||||
|
#define _O_TEXT 0
|
||||||
|
#define _O_BINARY 0
|
||||||
|
#define lfs_setmode(L,file,m) ((void)((void)file,m), \
|
||||||
|
luaL_error(L, LUA_QL("setmode") " not supported on non Windows platforms"), -1)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** This function changes the working (current) directory
|
** This function changes the working (current) directory
|
||||||
*/
|
*/
|
||||||
@@ -90,16 +101,17 @@ static int change_dir (lua_State *L) {
|
|||||||
** and a string describing the error
|
** and a string describing the error
|
||||||
*/
|
*/
|
||||||
static int get_dir (lua_State *L) {
|
static int get_dir (lua_State *L) {
|
||||||
char path[255+2];
|
char *path;
|
||||||
if (getcwd(path, 255) == NULL) {
|
if ((path = getcwd(NULL, 0)) == NULL) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, getcwd_error);
|
lua_pushstring(L, getcwd_error);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lua_pushstring(L, path);
|
lua_pushstring(L, path);
|
||||||
return 1;
|
free(path);
|
||||||
}
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -165,6 +177,36 @@ static int _file_lock (lua_State *L, FILE *fh, const char *mode, const long star
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int lfs_g_setmode (lua_State *L, FILE *f, int arg) {
|
||||||
|
static const int mode[] = {_O_TEXT, _O_BINARY};
|
||||||
|
static const char *const modenames[] = {"text", "binary", NULL};
|
||||||
|
int op = luaL_checkoption(L, arg, NULL, modenames);
|
||||||
|
int res = lfs_setmode(L, f, mode[op]);
|
||||||
|
if (res != -1) {
|
||||||
|
int i;
|
||||||
|
lua_pushboolean(L, 1);
|
||||||
|
for (i = 0; modenames[i] != NULL; i++) {
|
||||||
|
if (mode[i] == res) {
|
||||||
|
lua_pushstring(L, modenames[i]);
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lua_pushnil(L);
|
||||||
|
exit:
|
||||||
|
return 2;
|
||||||
|
} else {
|
||||||
|
int en = errno;
|
||||||
|
lua_pushnil(L);
|
||||||
|
lua_pushfstring(L, "%s", strerror(en));
|
||||||
|
lua_pushinteger(L, en);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int lfs_f_setmode(lua_State *L) {
|
||||||
|
return lfs_g_setmode(L, check_file(L, 1, "setmode"), 2);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Locks a file.
|
** Locks a file.
|
||||||
** @param #1 File handle.
|
** @param #1 File handle.
|
||||||
@@ -484,6 +526,9 @@ static void push_st_blksize (lua_State *L, struct stat *info) {
|
|||||||
lua_pushnumber (L, (lua_Number)info->st_blksize);
|
lua_pushnumber (L, (lua_Number)info->st_blksize);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
static void push_invalid (lua_State *L, struct stat *info) {
|
||||||
|
luaL_error(L, "invalid attribute name");
|
||||||
|
}
|
||||||
|
|
||||||
typedef void (*_push_function) (lua_State *L, struct stat *info);
|
typedef void (*_push_function) (lua_State *L, struct stat *info);
|
||||||
|
|
||||||
@@ -508,7 +553,7 @@ struct _stat_members members[] = {
|
|||||||
{ "blocks", push_st_blocks },
|
{ "blocks", push_st_blocks },
|
||||||
{ "blksize", push_st_blksize },
|
{ "blksize", push_st_blksize },
|
||||||
#endif
|
#endif
|
||||||
{ NULL, NULL }
|
{ NULL, push_invalid }
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -575,13 +620,13 @@ static int link_info (lua_State *L) {
|
|||||||
*/
|
*/
|
||||||
static void set_info (lua_State *L) {
|
static void set_info (lua_State *L) {
|
||||||
lua_pushliteral (L, "_COPYRIGHT");
|
lua_pushliteral (L, "_COPYRIGHT");
|
||||||
lua_pushliteral (L, "Copyright (C) 2003-2007 Kepler Project");
|
lua_pushliteral (L, "Copyright (C) 2003 Kepler Project");
|
||||||
lua_settable (L, -3);
|
lua_settable (L, -3);
|
||||||
lua_pushliteral (L, "_DESCRIPTION");
|
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_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_settable (L, -3);
|
||||||
lua_pushliteral (L, "_VERSION");
|
lua_pushliteral (L, "_VERSION");
|
||||||
lua_pushliteral (L, "LuaFileSystem 1.3.0");
|
lua_pushliteral (L, "LuaFileSystem 1.4.0");
|
||||||
lua_settable (L, -3);
|
lua_settable (L, -3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -596,6 +641,8 @@ static const struct luaL_reg fslib[] = {
|
|||||||
{"rmdir", remove_dir},
|
{"rmdir", remove_dir},
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
{"symlinkattributes", link_info},
|
{"symlinkattributes", link_info},
|
||||||
|
#else
|
||||||
|
{"setmode", lfs_f_setmode},
|
||||||
#endif
|
#endif
|
||||||
{"touch", file_utime},
|
{"touch", file_utime},
|
||||||
{"unlock", file_unlock},
|
{"unlock", file_unlock},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
LIBRARY lfs.dll
|
LIBRARY lfs.dll
|
||||||
DESCRIPTION "LuaFileSystem"
|
DESCRIPTION "LuaFileSystem"
|
||||||
VERSION 1.2.1
|
VERSION 1.4.0
|
||||||
EXPORTS
|
EXPORTS
|
||||||
luaopen_lfs
|
luaopen_lfs
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
** LuaFileSystem
|
** LuaFileSystem
|
||||||
** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/luafilesystem)
|
** Copyright Kepler Project 2003 (http://www.keplerproject.org/luafilesystem)
|
||||||
**
|
**
|
||||||
** $Id: lfs.h,v 1.3 2006/03/10 23:37:32 carregal Exp $
|
** $Id: lfs.h,v 1.4 2008/02/11 22:42:21 carregal Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Define 'chdir' for systems that do not implement it */
|
/* Define 'chdir' for systems that do not implement it */
|
||||||
|
|||||||
@@ -77,6 +77,16 @@ if lfs.symlinkattributes then
|
|||||||
assert (os.remove"_a_link_for_test_")
|
assert (os.remove"_a_link_for_test_")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if lfs.setmode then
|
||||||
|
-- Checking text/binary modes (works only in Windows)
|
||||||
|
local f = io.open(tmpfile, "w")
|
||||||
|
local mode = lfs.setmode(f, "binary")
|
||||||
|
assert(mode == "text")
|
||||||
|
mode = lfs.setmode(f, "text")
|
||||||
|
assert(mode == "binary")
|
||||||
|
f:close()
|
||||||
|
end
|
||||||
|
|
||||||
-- Restore access time to current value
|
-- Restore access time to current value
|
||||||
assert (lfs.touch (tmpfile, attrib.access, attrib.modification))
|
assert (lfs.touch (tmpfile, attrib.access, attrib.modification))
|
||||||
new_att = assert (lfs.attributes (tmpfile))
|
new_att = assert (lfs.attributes (tmpfile))
|
||||||
|
|||||||
Reference in New Issue
Block a user