mirror of openzeppelin-contracts
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.
openzeppelin-contracts/scripts/release/update-comment.js

28 lines
802 B

#!/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']);
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']);