Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/xlua.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClement Farabet <clement.farabet@gmail.com>2011-07-10 08:03:11 +0400
committerClement Farabet <clement.farabet@gmail.com>2011-07-10 08:03:11 +0400
commit60210f1f856a1cda9d892836951282f72113fb00 (patch)
tree032c81ccc55da92832442fcf59a2261f4c3a940b
parent3bf54c156f4b40b30cb5e18932408592ffa1aa76 (diff)
added summary method to option parser.
This summarizes options at startup.
-rw-r--r--OptionParser.lua24
1 files changed, 16 insertions, 8 deletions
diff --git a/OptionParser.lua b/OptionParser.lua
index d881e8e..047d73c 100644
--- a/OptionParser.lua
+++ b/OptionParser.lua
@@ -20,7 +20,7 @@
-- options,args = op.parse_args()
--
-- now options is the table of options (key, val) and args is the table with non-option arguments.
--- You can use op.fail(message) for failing and op.print_help() for printing the usage as you like.
+-- You can use op.fail(message) for failing and op.help() for printing the usage as you like.
--
-- modifed by Benoit Corda, Clement Farabet
--
@@ -42,7 +42,7 @@ end
function OptionParser:fail(s) -- extension
io.stderr:write(s .. '\n')
- self:print_help()
+ self:help()
os.exit(1)
end
@@ -107,14 +107,15 @@ function OptionParser:parse(options)
end
end
if options.help then
- self:print_help()
+ self:help()
os.exit()
end
-- set the default if nil
+ self.options = options
return options, args
end
-function OptionParser:flags_str(optdesc)
+function OptionParser:flags(optdesc)
local sflags = {}
local action = optdesc and optdesc.action
for _,flag in ipairs(optdesc) do
@@ -131,13 +132,13 @@ function OptionParser:flags_str(optdesc)
return table.concat(sflags, ', ')
end
-function OptionParser:print_help()
+function OptionParser:help()
io.stdout:write("Usage: " .. self.usage:gsub('%%prog', arg[0]) .. "\n")
io.stdout:write("\n")
io.stdout:write("Options:\n")
pad = 0
for _,optdesc in ipairs(self.option_descriptions) do
- pad = math.max(pad, #self:flags_str(optdesc))
+ pad = math.max(pad, #self:flags(optdesc))
end
for _,optdesc in ipairs(self.option_descriptions) do
local defstr = ''
@@ -146,8 +147,15 @@ function OptionParser:print_help()
elseif optdesc.default then
defstr = ' [default = ' .. optdesc.default .. ']'
end
- io.stdout:write(" " .. self:flags_str(optdesc) ..
- string.rep(' ', pad - #self:flags_str(optdesc)) ..
+ io.stdout:write(" " .. self:flags(optdesc) ..
+ string.rep(' ', pad - #self:flags(optdesc)) ..
" " .. optdesc.help .. defstr .. "\n")
end
end
+
+function OptionParser:summarize()
+ io.stdout:write('<'.. arg[0]:gsub('.lua','') .. "> configuration:\n")
+ for k,v in pairs(self.options) do
+ print(' + ' .. k .. ' = ' .. v)
+ end
+end