diff --git a/README.md b/README.md index 551e77a..744f597 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,65 @@ largparse ========= -Feature-rich command line parser for Lua +Feature-rich command line parser for Lua inspired by argparse for Python. + +WIP. + +Something already works: + +```lua + +local largparse = require "largparse" + +local parser = largparse.parser() + +parser:argument("input", { + args = 2 +}) + +parser:mutually_exclusive( + parser:flag("-q", "--quiet"), + parser:option("-s", "--server") +) + +local run = parser:command "run" + +run:flag("-f", "--fast") + +local args = parser:parse() + +``` + +TODO L1 +======= + +* Fix strange messages for not passed arguments +* Improve error messages: delegate them to parser, have separate methods for each error type +* Tests + +TODO L2 +======= + +* More tests +* Add defaults +* Add converters +* Add choices +* Make interface decalrative +* Refactor Parser +* Write primitive ugly usage and help message generation + +TODO L3 +======= + +* Tests with 100% coverage +* Document with LuaDoc/LDoc +* Add examples +* Add suggestions for command errors(e.g. `$ luarocks isntall` -> `Did you mean 'install'?`) +* Add pretty formatted usage and help messages +* Set up travis-ci testing + +TODO L4 +======= + +* Release + diff --git a/rockspecs/largparse-0.1-1.rockspec~ b/rockspecs/largparse-0.1-1.rockspec~ deleted file mode 100644 index b93aae8..0000000 --- a/rockspecs/largparse-0.1-1.rockspec~ +++ /dev/null @@ -1,22 +0,0 @@ -package = "largparse" -version = "git-1" -source = { - url = "src" -} -description = { - summary = "*** please specify description summary ***", - detailed = "*** please enter a detailed description ***", - homepage = "*** please enter a project homepage ***", - license = "MIT/X11" -} -dependencies = { - "lua >= 5.1, < 5.3", - "30log >= 0.6" -} -build = { - type = "builtin", - modules = { - largparse = "src/largparse.lua", - ["largparse.state"] = "src/state.lua" - } -} diff --git a/test/test.lua b/test/test.lua index 8a754c6..9f61ee1 100644 --- a/test/test.lua +++ b/test/test.lua @@ -7,9 +7,6 @@ parser:argument("input", { args = 2 }) -parser:flag("-q", "--quiet") -parser:option("-s", "--server") - parser:mutually_exclusive( parser:flag("-q", "--quiet"), parser:option("-s", "--server")