Compare commits
	
		
			No commits in common. "7e6cbb3c435b2d5ced4ab1683065e73552ec0378" and "194ab5e1f97f5051d2f372d6f41a86928750bab3" have entirely different histories. 
		
	
	
		
			7e6cbb3c43
			...
			194ab5e1f9
		
	
		
							
								
								
									
										2
									
								
								html.lua
								
								
								
								
							
							
						
						
									
										2
									
								
								html.lua
								
								
								
								
							| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
local logger = require("logging")
 | 
					local logger = require(".logging")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function trim(str)
 | 
					local function trim(str)
 | 
				
			||||||
	return str:match("^%s*(.-)%s*$")
 | 
						return str:match("^%s*(.-)%s*$")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										34
									
								
								main.lua
								
								
								
								
							
							
						
						
									
										34
									
								
								main.lua
								
								
								
								
							| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
#!/bin/env lua
 | 
					#!/bin/env lua
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local HTML = require("html")
 | 
					local HTML = require(".html")
 | 
				
			||||||
local CSS = require("css")
 | 
					local CSS = require(".css")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local logger = require("logging")
 | 
					local logger = require(".logging")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,17 +24,11 @@ local function print_usage()
 | 
				
			||||||
    logger.print("  -1, --first-only: return only the first match")
 | 
					    logger.print("  -1, --first-only: return only the first match")
 | 
				
			||||||
    logger.print("  -e, --errors: print warnings")
 | 
					    logger.print("  -e, --errors: print warnings")
 | 
				
			||||||
    logger.print("  -t, --text: Print only the innerText of the matched elements")
 | 
					    logger.print("  -t, --text: Print only the innerText of the matched elements")
 | 
				
			||||||
 | 
					    os.exit(1)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local RETURN_CODES = {
 | 
					 | 
				
			||||||
	OK = 0,
 | 
					 | 
				
			||||||
	NOTHING_FOUND = 1,
 | 
					 | 
				
			||||||
	ARGUMENTS_ERROR = 2,
 | 
					 | 
				
			||||||
	FAILED_INPUT = 3,
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local FLAGS = {
 | 
					local FLAGS = {
 | 
				
			||||||
| 
						 | 
					@ -60,7 +54,7 @@ local SHORTHAND_FLAGS = {
 | 
				
			||||||
if #arg < 2 then
 | 
					if #arg < 2 then
 | 
				
			||||||
	logger.printerr("Error: Not enough arguments")
 | 
						logger.printerr("Error: Not enough arguments")
 | 
				
			||||||
	print_usage()
 | 
						print_usage()
 | 
				
			||||||
	os.exit( RETURN_CODES.ARGUMENTS_ERROR )
 | 
						os.exit(1)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local flags = {}
 | 
					local flags = {}
 | 
				
			||||||
| 
						 | 
					@ -72,7 +66,7 @@ for _, argument in ipairs(arg) do
 | 
				
			||||||
			if not SHORTHAND_FLAGS[letter] then
 | 
								if not SHORTHAND_FLAGS[letter] then
 | 
				
			||||||
				logger.printerr("Unknown flag: -"..letter..".")
 | 
									logger.printerr("Unknown flag: -"..letter..".")
 | 
				
			||||||
				print_usage()
 | 
									print_usage()
 | 
				
			||||||
				os.exit( RETURN_CODES.ARGUMENTS_ERROR )
 | 
									os.exit(1)
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			local flag = SHORTHAND_FLAGS[letter]
 | 
								local flag = SHORTHAND_FLAGS[letter]
 | 
				
			||||||
| 
						 | 
					@ -88,7 +82,7 @@ for _, argument in ipairs(arg) do
 | 
				
			||||||
		if not LONGHAND_FLAGS[flagname] then
 | 
							if not LONGHAND_FLAGS[flagname] then
 | 
				
			||||||
			logger.printerr("Unknown flag: --"..flagname..".")
 | 
								logger.printerr("Unknown flag: --"..flagname..".")
 | 
				
			||||||
			print_usage()
 | 
								print_usage()
 | 
				
			||||||
			os.exit( RETURN_CODES.ARGUMENTS_ERROR )
 | 
								os.exit(1)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local flag = LONGHAND_FLAGS[flagname]
 | 
							local flag = LONGHAND_FLAGS[flagname]
 | 
				
			||||||
| 
						 | 
					@ -112,7 +106,7 @@ end
 | 
				
			||||||
if #positionals > 2 then
 | 
					if #positionals > 2 then
 | 
				
			||||||
	logger.printerr("Error: too many arguments !")
 | 
						logger.printerr("Error: too many arguments !")
 | 
				
			||||||
	print_usage()
 | 
						print_usage()
 | 
				
			||||||
	os.exit( RETURN_CODES.ARGUMENTS_ERROR )
 | 
						os.exit(1)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local html_file = positionals[1]
 | 
					local html_file = positionals[1]
 | 
				
			||||||
| 
						 | 
					@ -121,13 +115,13 @@ local html = nil
 | 
				
			||||||
if html_file ~= "-" then
 | 
					if html_file ~= "-" then
 | 
				
			||||||
	if not( file_exists( html_file )) then
 | 
						if not( file_exists( html_file )) then
 | 
				
			||||||
		logger.printerr("File doesn't exist: " .. html_file)
 | 
							logger.printerr("File doesn't exist: " .. html_file)
 | 
				
			||||||
		os.exit( RETURN_CODES.FAILED_INPUT )
 | 
							os.exit(2)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local handle = io.open( html_file, "r" )
 | 
						local handle = io.open( html_file, "r" )
 | 
				
			||||||
	if not handle then
 | 
						if not handle then
 | 
				
			||||||
		logger.printerr("Failed to open file " .. html_file)
 | 
							logger.printerr("Failed to open file " .. html_file)
 | 
				
			||||||
		os.exit( RETURN_CODES.FAILED_INPUT )
 | 
							os.exit(2)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	html = handle:read("a")
 | 
						html = handle:read("a")
 | 
				
			||||||
| 
						 | 
					@ -216,22 +210,20 @@ end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if #elements == 0 then
 | 
					 | 
				
			||||||
	os.exit( RETURN_CODES.NOTHING_FOUND )
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if flags[FLAGS.FIRST_ONLY] then
 | 
					if flags[FLAGS.FIRST_ONLY] then
 | 
				
			||||||
	if #elements > 0 then
 | 
						if #elements > 0 then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if flags[FLAGS.INNER_TEXT] then
 | 
							if flags[FLAGS.INNER_TEXT] then
 | 
				
			||||||
			logger.print( elements[1]:inner_text() )
 | 
								logger.print( elements[1]:inner_text() )
 | 
				
			||||||
			os.exit( RETURN_CODES.OK )
 | 
								os.exit(0)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		logger.print( HTML.tostring( elements[1] ) )
 | 
							logger.print( HTML.tostring( elements[1] ) )
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	os.exit( RETURN_CODES.OK )
 | 
						os.exit(0)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for _, el in ipairs(elements) do
 | 
					for _, el in ipairs(elements) do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue