Displays help using the same code used to display the change log.
[QuestHelper.git] / Development / unoptimize
blobcc298fd070b67f7d9e549947b5e9020e88c6c655
1 #!/usr/bin/env lua
3 loadfile("dump.lua")()
5 local optimize=false
6 local no_parse=false
7 local files = {}
9 for _, a in ipairs(arg) do
10   if not no_parse and string.sub(a, 1, 1) == "-" then
11     if a == "--" then
12       no_parse = true
13     elseif a == "--help" then
14       print("-u, --unoptimize:  Unoptimize the data file; makes comparing files easy.")
15       print("-o, --optimize:    Optimize the data file; will reduce Lua memory usage when loaded.")
16       print("--                 Stop parsing options.")
17       print("--help             Print this message.")
18       return
19     elseif a == "-o" or a == "--optimize" then
20       optimize = true
21     elseif a == "-u" or a == "--unoptimize" then
22       optimize = false
23     else
24       print("Unknown option: "..a)
25       return
26     end
27   else
28     table.insert(files, a)
29   end
30 end
32 if #files == 1 then
33   local loader = loadfile(files[1])
34   local data = {}
35   setfenv(loader, data)
36   loader()
37   
38   local buffer, prebuf = CreateBuffer(), CreateBuffer()
39   
40   if optimize then
41     for key, value in pairs(data) do
42       ScanVariable(value)
43     end
44   end
45   
46   for key, value in pairs(data) do
47     DumpVariable(buffer, prebuf, value, key)
48   end
49   
50   print(DumpingComplete(buffer, prebuf))
51 else
52   print("Expect a single file name.")
53 end