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.
29 lines
724 B
29 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);
|
|
}
|
|
|