Skip to content

zepto-lang/argparse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

argparse

A minimal argument parser for CLI applications in zepto in just over 100 lines. It is mostly thought of as a proof of concept, but it does indeed work pretty well. If the API appeals to you aesthetically, feel free to use it as you like.

##Usage

There is a file named test.zp that uses the module, if you need a running example. Usage could look like this:

(define argparse:handle-args (import "argparse:handle-args"))
(argparse:handle-args
    "this program kills zombies"
    (list (make-hash ["name"    "foo"]
                     ["type"    :number]
                     ["default" 10]
                     ["required" #f]
                     ["usage"   "foo you"])
          (make-hash ["name"    "bar"]
                     ["type"    :string]
                     ["options" ("baz)]
                     ["usage"   "bar me"])
          (make-hash ["name" "bool"]
                     ["short" "b"]
                     ["type" :boolean]
                     ["usage" "some boolean"])))

It uses the module's most important entry-point, handle-args. The function takes the program's description plus a list of hashmaps representing the arguments (with "name", "type" and, optionally, "usage") and returns a hashmap containing the arguments and their respective values. "short" is a special for boolean flags to allow arguments as "-b", for example. Grouping of those (e.g. "-xbd") is also allowed. The remaining arguments are ignored.

If the arguments are misformatted, the library will print usage information and return nil. If an argument that is not within the (optional) options parameter is given this will also result in a failure and the allowed options will be printed.

Usage info will look something like this:

error: argument "bar" must be one of the following: baz.

usage: test [foo|bar|bool]

  this program kills zombies

Arguments:
	-b, --bool	some boolean
	--bar STRING	bar me [required]
	--foo NUMBER	foo you

Have fun!

About

An argument parser for CLI applications in zepto

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published