Annotate

tools/dnsregistry.lua @ 13146:771eb453e03a

util.sqlite3: Deduplicate query methods There were 3 very similar methods: - :execute() - :execute_query() - :execute_update() The first one returns the prepared statement and is mainly used internally in the library for CREATE statements. The later two only really differ in how the results are returned. Those two are one main method and one small one that only picks out the iterator.
author Kim Alvefur <zash@zash.se>
date Sat, 10 Jun 2023 22:02:15 +0200
parent 13142:879a6a33c21b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12237
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Generate util/dnsregistry.lua from IANA HTTP status code registry
13142
879a6a33c21b tools: Update imports to use new prosody.* namespace
Kim Alvefur <zash@zash.se>
parents: 12855
diff changeset
2 if not pcall(require, "prosody.loader") then
879a6a33c21b tools: Update imports to use new prosody.* namespace
Kim Alvefur <zash@zash.se>
parents: 12855
diff changeset
3 pcall(require, "loader");
879a6a33c21b tools: Update imports to use new prosody.* namespace
Kim Alvefur <zash@zash.se>
parents: 12855
diff changeset
4 end
879a6a33c21b tools: Update imports to use new prosody.* namespace
Kim Alvefur <zash@zash.se>
parents: 12855
diff changeset
5 local xml = require "prosody.util.xml";
12271
f31bb79f51d7 tools: Allow processing instructions in some XML parsing tools
Kim Alvefur <zash@zash.se>
parents: 12237
diff changeset
6 local registries = xml.parse(io.read("*a"), { allow_processing_instructions = true });
12237
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 print("-- Source: https://www.iana.org/assignments/dns-parameters/dns-parameters.xml");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 print(os.date("-- Generated on %Y-%m-%d"))
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local registry_mapping = {
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 ["dns-parameters-2"] = "classes";
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 ["dns-parameters-4"] = "types";
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 ["dns-parameters-6"] = "errors";
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 };
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 print("return {");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 for registry in registries:childtags("registry") do
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 local registry_name = registry_mapping[registry.attr.id];
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 if registry_name then
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 print("\t" .. registry_name .. " = {");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 for record in registry:childtags("record") do
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 local record_name = record:get_child_text("name");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 local record_type = record:get_child_text("type");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 local record_desc = record:get_child_text("description");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 local record_code = tonumber(record:get_child_text("value"));
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27
12855
3306807c0619 tools/dnsregistry: Fix to ignore unassigned entries
Kim Alvefur <zash@zash.se>
parents: 12271
diff changeset
28 if tostring(record):lower():match("reserved") or tostring(record):lower():match("unassigned") then
12237
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 record_code = nil;
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 if registry_name == "classes" and record_code then
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 record_type = record_desc and record_desc:match("%((%w+)%)$")
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 if record_type then
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 print(("\t\t[%q] = %d; [%d] = %q;"):format(record_type, record_code, record_code, record_type))
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 elseif registry_name == "types" and record_type and record_code then
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 print(("\t\t[%q] = %d; [%d] = %q;"):format(record_type, record_code, record_code, record_type))
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 elseif registry_name == "errors" and record_code and record_name then
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 print(("\t\t[%d] = %q; [%q] = %q;"):format(record_code, record_name, record_name, record_desc or record_name));
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 print("\t};");
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 end
b35714c57442 tools.dnsregistry: For converting IANA DNS registry data to Lua table
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 print("};");