Skip to content

CDSoft/argparse

 
 

Repository files navigation

Note

About this fork

This fork of argparse is fully compatible with luarocks/argparse. It provides minor cosmetic updates:

  • Options in the help message are left-justified.

To update argparse from upstream:

git checkout master
git remote add luarocks https://github.com/luarocks/argparse
git fetch luarocks
git pull --rebase luarocks master
git push
git checkout LuaX
git pull --rebase origin master

argparse

CI Coverage status

Argparse is a feature-rich command line parser for Lua inspired by argparse for Python.

Argparse supports positional arguments, options, flags, optional arguments, subcommands and more. Argparse automatically generates usage, help, and error messages, and can generate shell completion scripts.

Contents

Example

Simple example:

-- script.lua
local argparse = require "argparse"

local parser = argparse("script", "An example.")
parser:argument("input", "Input file.")
parser:option("-o --output", "Output file.", "a.out")
parser:option("-I --include", "Include locations."):count("*")

local args = parser:parse()

args contents depending on command line arguments:

$ lua script.lua foo
{
   input = "foo",
   output = "a.out",
   include = {}
}
$ lua script.lua foo -I/usr/local/include -Isrc -o bar
{
   input = "foo",
   output = "bar",
   include = {"/usr/local/include", "src"}
}

Error messages depending on command line arguments:

$ lua script.lua foo bar
Usage: script [-h] [-o <output>] [-I <include>] <input>

Error: too many arguments
$ lua script.lua --help
Usage: script [-h] [-o <output>] [-I <include>] <input>

An example.

Arguments:
   input                 Input file.

Options:
   -h, --help            Show this help message and exit.
   -o <output>, --output <output>
                         Output file. (default: a.out)
   -I <include>, --include <include>
                         Include locations.
$ lua script.lua foo --outptu=bar
Usage: script [-h] [-o <output>] [-I <include>] <input>

Error: unknown option '--outptu'
Did you mean '--output'?

Installation

Using LuaRocks

Installing argparse using LuaRocks is simple:

$ luarocks install argparse

Without LuaRocks

Download src/argparse.lua file and put it into the directory for Lua libraries or your working directory.

Tutorial

The tutorial is available online. If argparse has been installed using LuaRocks 2.1.2 or later, it can be viewed using luarocks doc argparse command.

Tutorial HTML files can be built using Sphinx: sphinx-build docsrc doc, the files will be found inside doc/.

Testing

argparse comes with a testing suite located in spec directory. busted is required for testing, it can be installed using LuaRocks. Run the tests using busted command from the argparse folder.

License

argparse is licensed under the same terms as Lua itself (MIT license).

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Lua 94.7%
  • Python 5.3%