1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-10-10 05:23:37 -04:00
elinks/contrib/lua/md5check.lua
2005-10-21 09:14:07 +02:00

52 lines
1.5 KiB
Lua

-- Check MD5 sums of download files automagically (it expects them in
-- downloadedfile.txt).
----------------------------------------------------------------------
-- Installation
----------------------------------------------------------------------
--
-- 1. Put this into your hooks.lua. Alternatively you can put
-- this in a separate file and `dofile' it.
--
-- 2. Edit your `console_hook_functions' table in hooks.lua. e.g.
--
-- console_hook_functions = {
-- ...
-- md5 = md5,
-- ...
-- }
--
-- 3. Edit the second last line of this file to point to your
-- download directory. Sorry, but ELinks can't get this
-- information automatically (yet?).
function md5sum_check(download_dir)
local results = {}
string.gsub(current_document(), "([a-z%d]+) ([^\n]+)\n",
function (sum, filename)
-- lua regexps don't seem to be able to do this
if string.len(sum) ~= 32 then return end
local fn = download_dir.."/"..filename
if file_exists(fn) then
local localsum = string.gsub(pipe_read("md5sum "..fn),
"^([a-z%d]+).*$", "%1")
table.insert(results, filename.. " -- "..
((sum == localsum) and "ok\n" or "MISMATCH!\n"))
end
end)
local tmp = tmpname()..'.txt'
writeto(tmp)
results.n = nil
for i,v in results do write(v) end
writeto()
table.insert(tmp_files, tmp)
return 'goto_url', tmp
end
function md5()
-- Edit this to match your download directory.
return md5sum_check(home_dir .. "/download")
end