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-08-13 20:31:00 +0400
committerClement Farabet <clement.farabet@gmail.com>2011-08-13 20:31:00 +0400
commit80d8619d5c87fbb7428c7c6f7c272538ba87705a (patch)
treea181df7143cb1ea2346359f093744b9f9c363501 /OptionParser.lua
parent434a76641f612141c052b14c1e8b0c8e7c9f7256 (diff)
Added function to generate nice summary strings (OptionParser)
Diffstat (limited to 'OptionParser.lua')
-rw-r--r--OptionParser.lua40
1 files changed, 35 insertions, 5 deletions
diff --git a/OptionParser.lua b/OptionParser.lua
index c88d4e3..543db44 100644
--- a/OptionParser.lua
+++ b/OptionParser.lua
@@ -36,7 +36,7 @@ function xlua.OptionParser(usage)
self[k] = v
end
self:option{"-h", "--help", action="store_true", dest="help",
- help="show this help message and exit"}
+ help="show this help message and exit"}
return self
end
@@ -153,9 +153,39 @@ function OptionParser:help()
end
end
-function OptionParser:summarize()
- io.stdout:write('<'.. arg[0]:gsub('.lua','') .. "> configuration:\n")
- for k,v in pairs(self.options) do
- print(' + ' .. k .. ' = ' .. tostring(v))
+function OptionParser:tostring(generatefilename, params)
+ local str = ''
+ if not generatefilename then
+ str = '<'.. arg[0]:gsub('.lua','') .. "> configuration:\n"
+ for k,v in pairs(self.options) do
+ str = str .. ' + ' .. k .. ' = ' .. tostring(v) .. '\n'
+ end
+ else
+ local first = true
+ for i,entry in ipairs(self.option_descriptions) do
+ local key = entry[1]
+ local match = true
+ if #params > 0 then
+ match = false
+ for i,param in ipairs(params) do
+ if key == param then match = true; break end
+ end
+ end
+ local val = self.options[entry.dest]
+ if val and match then
+ if first then
+ str = str .. key .. '=' .. tostring(val)
+ else
+ str = str .. ',' .. key .. '=' .. tostring(val)
+ end
+ first = false
+ end
+ end
+ str = str:gsub('/','_'):gsub(' ','_')
end
+ return str
+end
+
+function OptionParser:summarize(compact)
+ io.write(self:tostring(compact))
end