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

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)))