blob: c3d74395e711d362279e107ee5d1c0b2543c4c37 [file] [log] [blame]
Patrick Williamscb882f82022-12-07 17:53:19 -06001#!/usr/bin/env python3
Patrick Williamsa523cec2022-09-12 16:15:25 -05002
Patrick Williamsa523cec2022-09-12 16:15:25 -05003from typing import List
4
Patrick Williamscb882f82022-12-07 17:53:19 -06005from sh import curl # type: ignore
6
Patrick Williamsa523cec2022-09-12 16:15:25 -05007ENTERPRISES = {
8 0: "Reserved",
9 2: "IBM",
10 343: "Intel Corporation",
11 674: "Dell Inc.",
12 1694: "HCL Technologies Limited",
13 2487: "Phoenix Technologies Ltd.",
14 4128: "ARM Ltd.",
15 6569: "INVENTEC CORPORATION",
16 7244: "Quanta Computer Inc.",
17 8554: "Departement Elektrotechnik, ETH Zuerich",
18 11129: "Google, Inc.",
19 11183: "Mitac International Corp.",
20 19046: "Lenovo Enterprise Business Group",
21 20974: "American Megatrends, Inc",
22 33049: "Mellanox Technologies LTD",
23 40092: "Wiwynn Corporation",
24 40981: "Facebook, Inc.",
25 42817: "IBM Platform Firmware Division",
26 45065: "Insyde",
27 48482: "Linaro Ltd",
28 48512: "Inspur Group Co.,Ltd.",
29 49150: "Vertiv Co",
Patrick Williams7bbf5a92023-01-24 17:31:19 -060030 49622: "ASRock Rack Incorporation",
Patrick Williamsa523cec2022-09-12 16:15:25 -050031 49769: "YADRO",
greenfilc61b8f92023-10-27 09:50:31 +030032 51172: "DEPO Electronics Ltd.",
Patrick Williamsa523cec2022-09-12 16:15:25 -050033 51974: "Raptor Computing Systems, LLC",
34 52538: "Ampere Computing",
George Liuc328a092022-09-11 14:27:13 +080035 52893: "Inspur Power Systems Co.,Ltd.",
George Liu87c7ba12024-06-26 17:14:47 +080036 61847: "IEIT SYSTEMS Co.,Ltd.",
Patrick Williamsa523cec2022-09-12 16:15:25 -050037}
38
Patrick Williamscb882f82022-12-07 17:53:19 -060039HEADER = """\
Patrick Williamsa523cec2022-09-12 16:15:25 -050040This file has been reduced to entities signing CLAs with OpenBMC
41https://drive.google.com/drive/folders/1Ooi0RdTcaOWF1DWFJUAJDdN7tRKde7Nl\
Patrick Williamscb882f82022-12-07 17:53:19 -060042"""
Patrick Williamsa523cec2022-09-12 16:15:25 -050043
44found_first: bool = False
45org: List[str] = []
46
Patrick Williamscb882f82022-12-07 17:53:19 -060047for ln in curl(
Patrick Williams7bbf5a92023-01-24 17:31:19 -060048 "-L", "https://www.iana.org/assignments/enterprise-numbers.txt"
Patrick Williamsa523cec2022-09-12 16:15:25 -050049).splitlines():
Patrick Williamscb882f82022-12-07 17:53:19 -060050 line = ln.rstrip()
Patrick Williamsa523cec2022-09-12 16:15:25 -050051
52 # Look for Reserved/EN-0 as the start of the data.
53 if "0" == line:
54 found_first = True
55
56 # Haven't found EN-0, emit as is.
57 if not found_first:
58 print(line)
59 # Look for magic string.
60 if line.startswith("This file is "):
61 print(HEADER)
62 continue
63
64 # Add line into 'org' set.
65 org.append(line)
66
67 # Every 4 lines (EN, Org, Contact, Email) make an org.
68 if len(org) == 4:
69 if int(org[0]) in ENTERPRISES:
70 for g in org:
71 print(g)
72
73 org = []