UNPKG

@riddance/env

Version:

36 lines 4.6 kB
import { readFile, writeFile } from 'node:fs/promises'; export async function sync() { try { const license = await readFile('LICENSE', 'utf-8'); const thisYear = new Date().getFullYear(); let changed = false; const updated = license.replaceAll(/Copyright © ([0-9]{4})(-[0-9]{4})? /gu, (all, year, negativeYearTo) => { if (negativeYearTo !== undefined) { if (Number(negativeYearTo) + thisYear === 0) { return all; } changed = true; return `Copyright © ${year}-${thisYear.toString()} `; } if (Number(year) !== thisYear) { changed = true; return `Copyright © ${year}-${thisYear.toString(10)} `; } return all; }); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (changed) { await writeFile('LICENSE', updated, 'utf-8'); } } catch (e) { if (isFileNotFound(e)) { return; } throw e; } } function isFileNotFound(e) { return e.code === 'ENOENT'; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb25vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hyb25vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFdEQsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUFJO0lBQ3RCLElBQUksQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNuQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUM5Qix1Q0FBdUMsRUFDdkMsQ0FBQyxHQUFHLEVBQUUsSUFBWSxFQUFFLGNBQXVCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMxQyxPQUFPLEdBQUcsQ0FBQTtnQkFDZCxDQUFDO2dCQUNELE9BQU8sR0FBRyxJQUFJLENBQUE7Z0JBQ2QsT0FBTyxlQUFlLElBQUksSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQTtZQUN4RCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUE7Z0JBQ2QsT0FBTyxlQUFlLElBQUksSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUE7WUFDMUQsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFBO1FBQ2QsQ0FBQyxDQUNKLENBQUE7UUFDRCx1RUFBdUU7UUFDdkUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sU0FBUyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFNO1FBQ1YsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFBO0lBQ1gsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxDQUFVO0lBQzlCLE9BQVEsQ0FBdUIsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFBO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN5bmMoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbGljZW5zZSA9IGF3YWl0IHJlYWRGaWxlKCdMSUNFTlNFJywgJ3V0Zi04JylcbiAgICAgICAgY29uc3QgdGhpc1llYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKClcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZVxuICAgICAgICBjb25zdCB1cGRhdGVkID0gbGljZW5zZS5yZXBsYWNlQWxsKFxuICAgICAgICAgICAgL0NvcHlyaWdodCDCqSAoWzAtOV17NH0pKC1bMC05XXs0fSk/IC9ndSxcbiAgICAgICAgICAgIChhbGwsIHllYXI6IHN0cmluZywgbmVnYXRpdmVZZWFyVG8/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmVZZWFyVG8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKG5lZ2F0aXZlWWVhclRvKSArIHRoaXNZZWFyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBDb3B5cmlnaHQgwqkgJHt5ZWFyfS0ke3RoaXNZZWFyLnRvU3RyaW5nKCl9IGBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKE51bWJlcih5ZWFyKSAhPT0gdGhpc1llYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBDb3B5cmlnaHQgwqkgJHt5ZWFyfS0ke3RoaXNZZWFyLnRvU3RyaW5nKDEwKX0gYFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWxsXG4gICAgICAgICAgICB9LFxuICAgICAgICApXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoJ0xJQ0VOU0UnLCB1cGRhdGVkLCAndXRmLTgnKVxuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoaXNGaWxlTm90Rm91bmQoZSkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzRmlsZU5vdEZvdW5kKGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gKGUgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGUgPT09ICdFTk9FTlQnXG59XG4iXX0=