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