72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
|
||
|
|
from typing import List
|
||
|
|
|
||
|
|
from sh import curl # type: ignore
|
||
|
|
|
||
|
|
ENTERPRISES = {
|
||
|
|
0: "Reserved",
|
||
|
|
2: "IBM",
|
||
|
|
343: "Intel Corporation",
|
||
|
|
674: "Dell Inc.",
|
||
|
|
1694: "HCL Technologies Limited",
|
||
|
|
2487: "Phoenix Technologies Ltd.",
|
||
|
|
4128: "ARM Ltd.",
|
||
|
|
6569: "INVENTEC CORPORATION",
|
||
|
|
7244: "Quanta Computer Inc.",
|
||
|
|
8554: "Departement Elektrotechnik, ETH Zuerich",
|
||
|
|
11129: "Google, Inc.",
|
||
|
|
11183: "Mitac International Corp.",
|
||
|
|
19046: "Lenovo Enterprise Business Group",
|
||
|
|
20974: "American Megatrends, Inc",
|
||
|
|
33049: "Mellanox Technologies LTD",
|
||
|
|
40092: "Wiwynn Corporation",
|
||
|
|
40981: "Facebook, Inc.",
|
||
|
|
42817: "IBM Platform Firmware Division",
|
||
|
|
45065: "Insyde",
|
||
|
|
48482: "Linaro Ltd",
|
||
|
|
48512: "Inspur Group Co.,Ltd.",
|
||
|
|
49150: "Vertiv Co",
|
||
|
|
49622: "ASRock Rack Incorporation",
|
||
|
|
49769: "YADRO",
|
||
|
|
51974: "Raptor Computing Systems, LLC",
|
||
|
|
52538: "Ampere Computing",
|
||
|
|
52893: "Inspur Power Systems Co.,Ltd.",
|
||
|
|
}
|
||
|
|
|
||
|
|
HEADER = """\
|
||
|
|
This file has been reduced to entities signing CLAs with OpenBMC
|
||
|
|
https://drive.google.com/drive/folders/1Ooi0RdTcaOWF1DWFJUAJDdN7tRKde7Nl\
|
||
|
|
"""
|
||
|
|
|
||
|
|
found_first: bool = False
|
||
|
|
org: List[str] = []
|
||
|
|
|
||
|
|
for ln in curl(
|
||
|
|
"-L", "https://www.iana.org/assignments/enterprise-numbers.txt"
|
||
|
|
).splitlines():
|
||
|
|
line = ln.rstrip()
|
||
|
|
|
||
|
|
# Look for Reserved/EN-0 as the start of the data.
|
||
|
|
if "0" == line:
|
||
|
|
found_first = True
|
||
|
|
|
||
|
|
# Haven't found EN-0, emit as is.
|
||
|
|
if not found_first:
|
||
|
|
print(line)
|
||
|
|
# Look for magic string.
|
||
|
|
if line.startswith("This file is "):
|
||
|
|
print(HEADER)
|
||
|
|
continue
|
||
|
|
|
||
|
|
# Add line into 'org' set.
|
||
|
|
org.append(line)
|
||
|
|
|
||
|
|
# Every 4 lines (EN, Org, Contact, Email) make an org.
|
||
|
|
if len(org) == 4:
|
||
|
|
if int(org[0]) in ENTERPRISES:
|
||
|
|
for g in org:
|
||
|
|
print(g)
|
||
|
|
|
||
|
|
org = []
|