You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
|
2 days ago
|
# -*- coding: utf-8 -*-
|
||
|
|
"""Delete stale generated .bru files listed in bruno-recon.json (delete section).
|
||
|
|
Safety: only removes files whose meta block carries the `generated` tag."""
|
||
|
|
import json
|
||
|
|
import os
|
||
|
|
|
||
|
|
DOCS = r'E:\code\crm-api-docs'
|
||
|
|
RECON = r'e:\code\crm-backend-matt\.scratch\customer-rework\bruno-recon.json'
|
||
|
|
LOG = r'e:\code\crm-backend-matt\.scratch\customer-rework\delete-run.txt'
|
||
|
|
|
||
|
|
recon = json.load(open(RECON, encoding='utf-8'))
|
||
|
|
delete = recon['delete'] if isinstance(recon, dict) else recon
|
||
|
|
# delete entries: list of repo-relative paths (dir + filename joined)
|
||
|
|
paths = []
|
||
|
|
for item in delete:
|
||
|
|
if isinstance(item, dict):
|
||
|
|
rel = item.get('path') or (item.get('dir', '') + '\\' + item.get('file', ''))
|
||
|
|
else:
|
||
|
|
rel = str(item)
|
||
|
|
paths.append(rel)
|
||
|
|
|
||
|
|
out = ['total in delete list: %d' % len(paths)]
|
||
|
|
removed, missing, refused = [], [], []
|
||
|
|
for rel in paths:
|
||
|
|
p = os.path.join(DOCS, rel)
|
||
|
|
if not os.path.isfile(p):
|
||
|
|
missing.append(rel)
|
||
|
|
continue
|
||
|
|
head = open(p, encoding='utf-8', errors='replace').read(400)
|
||
|
|
if 'generated' not in head:
|
||
|
|
refused.append(rel)
|
||
|
|
continue
|
||
|
|
os.remove(p)
|
||
|
|
removed.append(rel)
|
||
|
|
|
||
|
|
out.append('removed: %d' % len(removed))
|
||
|
|
out += [' ' + r for r in removed]
|
||
|
|
out.append('missing (already gone): %d' % len(missing))
|
||
|
|
out += [' ' + r for r in missing]
|
||
|
|
out.append('refused (no generated tag): %d' % len(refused))
|
||
|
|
out += [' ' + r for r in refused]
|
||
|
|
open(LOG, 'w', encoding='utf-8').write('\n'.join(out))
|
||
|
|
print('removed=%d missing=%d refused=%d' % (len(removed), len(missing), len(refused)))
|