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/openpower-.*",
11215c1c3bSPatrick Williams        "openbmc/google-.*",
12215c1c3bSPatrick Williams        "openbmc/meta-.*",
13215c1c3bSPatrick Williams    ]
14215c1c3bSPatrick Williams
15215c1c3bSPatrick Williams    reject_repo = [
16215c1c3bSPatrick Williams        "openbmc/s2600wf-misc",
17215c1c3bSPatrick Williams    ]
18215c1c3bSPatrick Williams
19215c1c3bSPatrick Williams    for r in reject_repo:
20215c1c3bSPatrick Williams        if r == name:
21215c1c3bSPatrick Williams            return False
22215c1c3bSPatrick Williams
23215c1c3bSPatrick Williams    for r in reject_regex:
24215c1c3bSPatrick Williams        if re.match(r, name):
25215c1c3bSPatrick Williams            return False
26215c1c3bSPatrick Williams
27215c1c3bSPatrick Williams    return True
28215c1c3bSPatrick Williams
29215c1c3bSPatrick Williams
30215c1c3bSPatrick Williamsdef file(proj: str, filename: str) -> bool:
31215c1c3bSPatrick Williams    reject_regex = {
32215c1c3bSPatrick Williams        "all": [
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/.*"],
45215c1c3bSPatrick Williams        "openbmc/phosphor-debug-collector": [
46215c1c3bSPatrick Williams            "dump-extensions/.*",
47215c1c3bSPatrick Williams            "tools/dreport.d/ibm.d/.*",
48215c1c3bSPatrick Williams        ],
49215c1c3bSPatrick Williams        "openbmc/phosphor-fan-presence": [".*/config_files/.*"],
50215c1c3bSPatrick Williams        "openbmc/phosphor-power": [".*/config_files/.*"],
51215c1c3bSPatrick Williams        "openbmc/phosphor-led-manager": ["configs/.*"],
52215c1c3bSPatrick Williams        "openbmc/phosphor-logging": [".*/openpower-pels/.*"],
53215c1c3bSPatrick Williams        "openbmc/webui-vue": [
54215c1c3bSPatrick Williams            "src/env/.*",
55215c1c3bSPatrick Williams        ],
56215c1c3bSPatrick Williams    }
57215c1c3bSPatrick Williams
58*d0269de8SPatrick Williams    reject_files = ["/COMMIT_MSG", "/PATCHSET_LEVEL"]
59215c1c3bSPatrick Williams
60215c1c3bSPatrick Williams    for r in reject_files:
61215c1c3bSPatrick Williams        if r == filename:
62215c1c3bSPatrick Williams            return False
63215c1c3bSPatrick Williams
64215c1c3bSPatrick Williams    for r in reject_regex.get(proj, []) + reject_regex.get("all", []):
65215c1c3bSPatrick Williams        if re.match(r, filename):
66215c1c3bSPatrick Williams            return False
67215c1c3bSPatrick Williams
68215c1c3bSPatrick Williams    return True
69