#!/usr/bin/env node const fs = require('fs'); const glob = require('glob'); const proc = require('child_process'); const gitStatus = proc.execFileSync('git', ['status', '--porcelain', '-uno', 'contracts/**/*.sol']); if (gitStatus.length > 0) { console.error('Contracts directory is not clean'); process.exit(1); } const { version } = require('../../package.json'); const files = glob.sync('contracts/!(mocks)/**/*.sol'); for (const file of files) { const current = fs.readFileSync(file, 'utf8'); const updated = current.replace( /(\/\/ SPDX-License-Identifier:.*)$(\n\/\/ OpenZeppelin Contracts v.*$)?/m, `$1\n// OpenZeppelin Contracts v${version} (${file.replace('contracts/', '')})`, ); fs.writeFileSync(file, updated); } proc.execFileSync('git', ['add', '--update', 'contracts']);