1215c1c3bSPatrick Williams#!/usr/bin/python3
2215c1c3bSPatrick Williamsimport re
3215c1c3bSPatrick Williams
4215c1c3bSPatrick Williams
5215c1c3bSPatrick Williamsdef project(name: str) -> bool:
6215c1c3bSPatrick Williams    reject_regex = [
7215c1c3bSPatrick Williams        ".*-oem",
8215c1c3bSPatrick Williams        "openbmc/ibm-.*",
9215c1c3bSPatrick Williams        "openbmc/intel-.*",
10215c1c3bSPatrick Williams        "openbmc/google-.*",
11215c1c3bSPatrick Williams        "openbmc/meta-.*",
12215c1c3bSPatrick Williams    ]
13215c1c3bSPatrick Williams
14215c1c3bSPatrick Williams    reject_repo = [
15215c1c3bSPatrick Williams        "openbmc/s2600wf-misc",
16215c1c3bSPatrick Williams    ]
17215c1c3bSPatrick Williams
18215c1c3bSPatrick Williams    for r in reject_repo:
19215c1c3bSPatrick Williams        if r == name:
20215c1c3bSPatrick Williams            return False
21215c1c3bSPatrick Williams
22215c1c3bSPatrick Williams    for r in reject_regex:
23215c1c3bSPatrick Williams        if re.match(r, name):
24215c1c3bSPatrick Williams            return False
25215c1c3bSPatrick Williams
26215c1c3bSPatrick Williams    return True
27215c1c3bSPatrick Williams
28215c1c3bSPatrick Williams
29215c1c3bSPatrick Williamsdef file(proj: str, filename: str) -> bool:
30215c1c3bSPatrick Williams    reject_regex = {
31215c1c3bSPatrick Williams        "all": [
32*b0ce01dbSPatrick Williams            ".*/create_pel.*",
33215c1c3bSPatrick Williams            ".*/google/",
34215c1c3bSPatrick Williams            ".*/ibm/",
35215c1c3bSPatrick Williams            ".*/intel/",
36215c1c3bSPatrick Williams            "MAINTAINERS",
37215c1c3bSPatrick Williams            "OWNERS",
38215c1c3bSPatrick Williams            "ibm-.*",
39215c1c3bSPatrick Williams            "ibm_.*",
40215c1c3bSPatrick Williams        ],
41215c1c3bSPatrick Williams        "openbmc/entity-manager": ["configurations/.*"],
42215c1c3bSPatrick Williams        "openbmc/libmctp": ["docs/bindings/vendor-.*"],
43215c1c3bSPatrick Williams        "openbmc/openbmc": ["meta-(?!phosphor).*", "poky/.*"],
44215c1c3bSPatrick Williams        "openbmc/openbmc-test-automation": ["oem/.*", "openpower/.*"],
45*b0ce01dbSPatrick Williams        "openbmc/openpower-libhei": [
46*b0ce01dbSPatrick Williams            "test/simulator/sample_data/.*",
47*b0ce01dbSPatrick Williams            "test/simulator/test_*cases/.*",
48*b0ce01dbSPatrick Williams            "xml/.*",
49*b0ce01dbSPatrick Williams        ],
50*b0ce01dbSPatrick Williams        "openbmc/openpower-hw-diags": [
51*b0ce01dbSPatrick Williams            ".*/pel/.*",
52*b0ce01dbSPatrick Williams            ".*/ras-data/.*",
53*b0ce01dbSPatrick Williams        ],
54215c1c3bSPatrick Williams        "openbmc/phosphor-debug-collector": [
55215c1c3bSPatrick Williams            "dump-extensions/.*",
56215c1c3bSPatrick Williams            "tools/dreport.d/ibm.d/.*",
57215c1c3bSPatrick Williams        ],
58215c1c3bSPatrick Williams        "openbmc/phosphor-fan-presence": [".*/config_files/.*"],
59215c1c3bSPatrick Williams        "openbmc/phosphor-power": [".*/config_files/.*"],
60215c1c3bSPatrick Williams        "openbmc/phosphor-led-manager": ["configs/.*"],
61215c1c3bSPatrick Williams        "openbmc/phosphor-logging": [".*/openpower-pels/.*"],
62215c1c3bSPatrick Williams        "openbmc/webui-vue": [
63215c1c3bSPatrick Williams            "src/env/.*",
64215c1c3bSPatrick Williams        ],
65215c1c3bSPatrick Williams    }
66215c1c3bSPatrick Williams
67d0269de8SPatrick Williams    reject_files = ["/COMMIT_MSG", "/PATCHSET_LEVEL"]
68215c1c3bSPatrick Williams
69215c1c3bSPatrick Williams    for r in reject_files:
70215c1c3bSPatrick Williams        if r == filename:
71215c1c3bSPatrick Williams            return False
72215c1c3bSPatrick Williams
73215c1c3bSPatrick Williams    for r in reject_regex.get(proj, []) + reject_regex.get("all", []):
74215c1c3bSPatrick Williams        if re.match(r, filename):
75215c1c3bSPatrick Williams            return False
76215c1c3bSPatrick Williams
77215c1c3bSPatrick Williams    return True
78