[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: How to getopt?
- From: Sean Conner <sean@...>
- Date: Thu, 23 Dec 2010 16:33:11 -0500
It was thus said that the Great Steve Litt once stated:
> Hi all,
>
> I'm rewriting my UMENU program
> (http://www.troubleshooters.com/umenu/index.htm) in Lua, and so far so good.
> So far, I see little reason to ever use Perl again :-)
>
> UMENU uses Perl's getopt_long. I've read all sorts of things about Lua's
> Getopt facility, and so far it seems like yes, there's one in the standard
> package, but some are saying it doesn't work all that well and a lot of people
> are writing their own getopt facilities.
>
> Ideally, I'd like my Lua based UMENU to work with plain, ordinary, everyone
> can install it Lua, rather than depending on special packages the user needs
> to install, so if the one in the standard library works, that's what I'd like
> to use. I could also just manually check for arguments -- there aren't that
> many options to UMENU.
>
> So what are you all using for Getopt or preferably Getopt_long in Lua?
I rolled my own and found it wasn't hard at all. An example of usage:
require "org.conman.getopt"
options = {
{ 'I' , "index" , false , function() reindex = true end } ,
{ 'i' , "input" , true , function(f) input = io.open(f,"r") end } ,
{ 'f' , "facility" , true , function(f) set_syslog_facility(f) end } ,
{ 'd' , "debug" , false , function() debug = false end }
}
org.conman.getopt.getopt(arg,options)
First column---single letter option.
Second column---long option form
Third column---whether the option takes a parameter or not
Fourth column---function to handle the option
The code is pure Lua, and is avaiable upon request.
-spc (It works for me)