X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/d78792f51535f469f4ba55b9ff8fa874c5fd34e0..605524b13138467a83fa870d284a9fbc9e133eff:/client/scripts/htmldump.lua

diff --git a/client/scripts/htmldump.lua b/client/scripts/htmldump.lua
index e9d35443..d14f8819 100644
--- a/client/scripts/htmldump.lua
+++ b/client/scripts/htmldump.lua
@@ -2,10 +2,11 @@
 -- Have a look there for further details
 getopt = require('getopt')
 bin = require('bin')
+dumplib = require('html_dumplib')
 
-example = "script run 14araw -x 6000F57b"
+example = "script run htmldump -o mifarecard_foo.html"
 author = "Martin Holst Swende"
-usage = "script run htmldump [-f <file>]"
+usage = "script run htmldump [-i <file>] [-o <file>]"
 desc =[[
 This script takes a dumpfile and produces a html based dump, which is a 
 bit more easily analyzed. 
@@ -43,29 +44,8 @@ function help()
 	print(example)
 end
 
-local function readdump(infile)
-	 t = infile:read("*all")
-	 --print(string.len(t))
-	 len = string.len(t)
-	 local len,hex = bin.unpack(("H%d"):format(len),t)
-	 --print(len,hex)
-	 return hex
-end
-local function convert_to_js(hexdata)
-	if string.len(hexdata) % 32 ~= 0 then 
-		return oops(("Bad data, length should be a multiple of 32 (was %d)"):format(string.len(hexdata)))
-	end
-	local js,i = "[";
-	for i = 1, string.len(hexdata),32 do
-		js = js .."'" ..string.sub(hexdata,i,i+31).."',\n"
-	end
-	js = js .. "]"
-	return js
-end
-
 local function main(args)
 
-	print(desc)
 	local input = "dumpdata.bin"
 	local output = os.date("%Y-%m-%d_%H%M%S.html");
 	for o, a in getopt.getopt(args, 'i:o:h') do
@@ -73,31 +53,12 @@ local function main(args)
 		if o == "i" then input = a end
 		if o == "o" then output = a end
 	end
-	-- Validate the parameters
-	
-	local infile = io.open(input, "r")
-	if infile == nil then 
-		return ("Could not read file ", input)
-	end
-	--lokal skel = require("skel")
-	local dumpdata = readdump(infile)
-	io.close(infile)
+	local filename, err = dumplib.convert_bin_to_html(input,output,16)
+	if err then return oops(err) end
 
-	local js_code = convert_to_js(dumpdata)
-	--print(js_code)
-	local skel = require("htmlskel")
-	html = skel.getHTML(js_code);
-	
-	local outfile = io.open(output, "w")
-	if outfile == nil then 
-		return oops("Could not write to file ", output)
-	end
-	outfile:write(html)
-	io.close(outfile)
-	print(("Wrote a HTML dump to the file %s"):format(output))
+	print(("Wrote a HTML dump to the file %s"):format(filename))
 end
 
-
 --[[
 In the future, we may implement so that scripts are invoked directly 
 into a 'main' function, instead of being executed blindly. For future