update-comment.js 811 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env node
  2. const fs = require('fs');
  3. const glob = require('glob');
  4. const proc = require('child_process');
  5. const gitStatus = proc.execFileSync('git', ['status', '--porcelain', '-uno', 'contracts/**/*.sol']);
  6. if (gitStatus.length > 0) {
  7. console.error('Contracts directory is not clean');
  8. process.exit(1);
  9. }
  10. const { version } = require('../../package.json');
  11. const files = glob.sync('contracts/!(mocks)/**/*.sol');
  12. for (const file of files) {
  13. const current = fs.readFileSync(file, 'utf8');
  14. const updated = current.replace(
  15. /(\/\/ SPDX-License-Identifier:.*)$(\n\/\/ OpenZeppelin Contracts v.*$)?/m,
  16. `$1\n// OpenZeppelin Contracts v${version} (${file.replace('contracts/', '')})`,
  17. );
  18. fs.writeFileSync(file, updated);
  19. }
  20. proc.execFileSync('git', ['add', '--update', 'contracts']);