function string.nl2br(input) return input:gsub( "\n", "
" ) end function string.starts(input, start) return input:sub( 1, string.len( start ) ) == start end function io.readAll(file) local f = io.open(file, "rb") local content = f:read("*all") f:close() return content end function os.download( url ) file = os.tmpname() os.execute( "/usr/bin/wget -qO- '" .. url .. "' > " .. file ) data = io.readAll( file ) os.remove( file ) return data end function fatal( string ) print( string ) os.exit( 2 ) end