changelog-check.js 841 B

12345678910111213141516171819202122232425262728293031323334
  1. const { exec } = require("child_process");
  2. const normalizePath = (path) => path.replace(/\\+/g, "/").trim().toLowerCase();
  3. const IGNORED_PATHS = [
  4. "src/excalidraw-app",
  5. "packages/utils",
  6. "CHANGELOG.md",
  7. "README.md",
  8. ].map(normalizePath);
  9. exec("git diff origin/master --cached --name-only", (error, stdout, stderr) => {
  10. if (error || stderr) {
  11. process.exit(1);
  12. }
  13. if (!stdout || stdout.includes("packages/excalidraw/CHANGELOG.md")) {
  14. process.exit(0);
  15. }
  16. const changedFiles = stdout.trim().split("\n").map(normalizePath);
  17. const excalidrawPackageFiles = changedFiles.filter((filename) => {
  18. return (
  19. filename.includes("src") &&
  20. !IGNORED_PATHS.find((ignoredPath) => filename.includes(ignoredPath))
  21. );
  22. });
  23. if (excalidrawPackageFiles.length) {
  24. process.exit(1);
  25. }
  26. process.exit(0);
  27. });