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.

32 lines
1.4 KiB

7 days ago
// BOM 扫描(AGENTS.md 编码纪律):票 03 新改/新建的 Java 文件必须 UTF-8 无 BOM
import { readFileSync } from 'node:fs';
const files = [
// crm-rule 三族
'crm-rule/src/main/java/com/crm/rule/service/impl/OpportunityStageTemplateServiceImpl.java',
'crm-rule/src/main/java/com/crm/rule/service/impl/OpportunitySchemeCardTemplateServiceImpl.java',
'crm-rule/src/main/java/com/crm/rule/service/impl/OpportunityPoolRuleServiceImpl.java',
// crm-opportunity 新建 owner 组件
'crm-opportunity/src/main/java/com/crm/opportunity/owner/OwnerSnapshot.java',
'crm-opportunity/src/main/java/com/crm/opportunity/owner/OwnerSnapshotResolver.java',
'crm-opportunity/src/main/java/com/crm/opportunity/owner/impl/OpportunityOwnerSnapshotResolverImpl.java',
// crm-opportunity 消费方
'crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunityCreateServiceImpl.java',
'crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/impl/OpportunityCreationPortImpl.java',
'crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityTransitionController.java',
];
let bad = 0;
for (const f of files) {
const b = readFileSync(f);
const hasBom = b[0] === 0xef && b[1] === 0xbb && b[2] === 0xbf;
if (hasBom) {
console.log(`BOM FOUND: ${f}`);
bad++;
} else {
console.log(`ok: ${f}`);
}
}
console.log(bad === 0 ? 'ALL CLEAN' : `${bad} file(s) with BOM`);
process.exit(bad === 0 ? 0 : 1);