const path = require('node:path');
const fs = require('node:fs');
const pc = require('picocolors');

const msgPath = path.resolve('.git/COMMIT_EDITMSG');
const msg = fs.readFileSync(msgPath, 'utf-8').trim();

const commitRE =
  /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/;

if(!commitRE.test(msg)) {
  console.log();
  console.error(
    `  ${pc.bgRed(pc.white(' ERROR '))} ${pc.red('Git提交信息不符合规范!')}\n\n${pc.green(
      '推荐使用命令 npm run cz 生成符合规范的Git提交信息'
    )}\n`
  );
  process.exit(1);
}
