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/generate/run.js

30 lines
724 B

#!/usr/bin/env node
const fs = require('fs');
const format = require('./format-lines');
function getVersion (path) {
try {
return fs
.readFileSync(path, 'utf8')
.match(/\/\/ OpenZeppelin Contracts \(last updated v\d+\.\d+\.\d+\)/)[0];
} catch (err) {
return null;
}
}
for (const [ file, template ] of Object.entries({
'utils/math/SafeCast.sol': './templates/SafeCast',
'mocks/SafeCastMock.sol': './templates/SafeCastMock',
})) {
const path = `./contracts/${file}`;
const version = getVersion(path);
const content = format(
'// SPDX-License-Identifier: MIT',
(version ? version + ` (${file})\n` : ''),
require(template).trimEnd(),
);
fs.writeFileSync(path, content);
}