17 lines
795 B
Python
17 lines
795 B
Python
import glob,os,re
|
|
def entries(p): return {l.split()[0] for l in open(p) if l.strip() and not l.lstrip().startswith('#')}
|
|
full=entries('lib/profiles/full.profile')
|
|
removed={'ship','land-and-deploy','setup-deploy','autoplan','context-save','learn','careful','guard','design-shotgun'}
|
|
trio={'21st-ai','21st-ui-explore','21st-ui-review'}
|
|
test=open('lib/tests/profile-census.test.sh').read()
|
|
m=re.search(r'^\s*FULL_EXCEPTIONS=\(([^)]*)\)',test,re.M)
|
|
allow=set(m.group(1).split()) if m else set()
|
|
gap=set()
|
|
for p in glob.glob('lib/profiles/*.profile'):
|
|
if os.path.basename(p) in ('full.profile','max.profile'): continue
|
|
gap|=entries(p)-full
|
|
gap-=removed|trio|allow
|
|
assert not gap, sorted(gap)
|
|
assert 'pr-review-toolkit' in allow, 'allowlist must name pr-review-toolkit'
|
|
print('FULL_UNION_OK')
|