mirror of
				https://github.com/rkd77/elinks.git
				synced 2025-10-21 19:54:04 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			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
 |