Blame README

Packit 437b5e
luaposix
Packit 437b5e
========
Packit 437b5e
Packit 437b5e
By the [luaposix project][GitHub]
Packit 437b5e
Packit 437b5e
[![travis-ci status](https://secure.travis-ci.org/luaposix/luaposix.png?branche=master)](http://travis-ci.org/luaposix/luaposix/builds)
Packit 437b5e
[![Stories in Ready](https://badge.waffle.io/luaposix/luaposix.png?label=ready&title=Ready)](https://waffle.io/luaposix/luaposix)
Packit 437b5e
Packit 437b5e
luaposix is a POSIX binding, including curses, for [Lua] 5.1, 5.2 and
Packit 437b5e
5.3; like most libraries it simply binds to C APIs on the underlying
Packit 437b5e
system, so it won't work on non-POSIX systems. However, it does try
Packit 437b5e
to detect the level of POSIX conformance of the underlying system and
Packit 437b5e
bind only available APIs.
Packit 437b5e
Packit 437b5e
luaposix is released under the MIT license, like Lua (see [COPYING];
Packit 437b5e
it's basically the same as the BSD license). There is no warranty.
Packit 437b5e
Packit 437b5e
Please report bugs and make suggestions by opening an issue on the
Packit 437b5e
github tracker.
Packit 437b5e
Packit 437b5e
Installation
Packit 437b5e
------------
Packit 437b5e
Packit 437b5e
The simplest way to install luaposix is with [LuaRocks]. To install the
Packit 437b5e
latest release (recommended):
Packit 437b5e
Packit 437b5e
    luarocks install luaposix
Packit 437b5e
Packit 437b5e
To install current git master (for testing):
Packit 437b5e
Packit 437b5e
    luarocks install https://raw.github.com/luaposix/luaposix/release/luaposix-git-1.rockspec
Packit 437b5e
Packit 437b5e
To install without LuaRocks, check out the sources from the
Packit 437b5e
[repository][GitHub] and run the following commands:
Packit 437b5e
Packit 437b5e
    cd luaposix
Packit 437b5e
    ./bootstrap
Packit 437b5e
    ./configure --prefix=INSTALLATION-ROOT-DIRECTORY
Packit 437b5e
    make all check install
Packit 437b5e
Packit 437b5e
Dependencies are listed in the dependencies entry of the file
Packit 437b5e
`rockspec.conf`. You will also need Autoconf and Automake.
Packit 437b5e
Packit 437b5e
See [INSTALL] for `configure` instructions and `configure --help`
Packit 437b5e
for details of available command-line switches.
Packit 437b5e
Packit 437b5e
Use
Packit 437b5e
---
Packit 437b5e
Packit 437b5e
The library is split into submodules according to the POSIX header file
Packit 437b5e
API declarations.
Packit 437b5e
Packit 437b5e
HTML documentation can be generated with [LDoc] by running `make doc`
Packit 437b5e
or viewed online at <http://luaposix.github.io/luaposix/>.
Packit 437b5e
Packit 437b5e
The authoritative online POSIX reference is at
Packit 437b5e
<http://www.opengroup.org/onlinepubs/007904875/toc.htm>.
Packit 437b5e
Packit 437b5e
Example code
Packit 437b5e
------------
Packit 437b5e
Packit 437b5e
See the example program `tree.lua`, along with the many small
Packit 437b5e
examples in the generated documentation and BDD `specs/*_spec.yaml`.
Packit 437b5e
Packit 437b5e
For a complete application, see the [GNU Zile].
Packit 437b5e
Packit 437b5e
Bugs reports & patches
Packit 437b5e
----------------------
Packit 437b5e
Packit 437b5e
Bug reports and patches are most welcome. Please use the github issue
Packit 437b5e
tracker (see URL at top). There is no strict coding style, but please
Packit 437b5e
bear in mind the following points when writing new code:
Packit 437b5e
Packit 437b5e
0. Follow existing code. There are a lot of useful patterns and
Packit 437b5e
   avoided traps there.
Packit 437b5e
Packit 437b5e
1. 8-character indentation using TABs in C sources; 2-character
Packit 437b5e
   indentation using SPACEs in Lua sources.
Packit 437b5e
Packit 437b5e
2. No non-POSIX APIs; no platform-specific code. When wrapping APIs
Packit 437b5e
   introduced in POSIX 2001 or later, add an appropriate #if. If your
Packit 437b5e
   platform isn't quite POSIX, you may find a gnulib module to bridge
Packit 437b5e
   the gap. If absolutely necessary, use autoconf feature tests.
Packit 437b5e
Packit 437b5e
3. Thin wrappers: although some existing code contradicts this, wrap
Packit 437b5e
   POSIX APIs in the simplest way possible. If necessary, more
Packit 437b5e
   convenient wrappers can be added in Lua (posix.lua).
Packit 437b5e
Packit 437b5e
Packit 437b5e
[Lua]: http://www.lua.org/
Packit 437b5e
[GitHub]: https://github.com/luaposix/luaposix
Packit 437b5e
[LuaRocks]: http://www.luarocks.org "Lua package manager"
Packit 437b5e
[LDoc]: https://github.com/stevedonovan/LDoc "Lua documentation generator"
Packit 437b5e
[COPYING]: https://raw.github.com/luaposix/luaposix/release/COPYING
Packit 437b5e
[INSTALL]: https://raw.github.com/luaposix/luaposix/release/INSTALL
Packit 437b5e
[GNU Zile]: http://git.savannah.gnu.org/cgit/zile.git/log/?h=lua "A cut-down Emacs clone"