This commit is contained in:
Timo Hocker 2020-03-25 16:07:54 +01:00
parent 0118737289
commit 814957e9bc

View File

@ -1,10 +1,12 @@
/* /*
* Copyright (C) Sapphirecode - All Rights Reserved * Copyright (C) Sapphirecode - All Rights Reserved
* This file is part of snippeteer which is released under BSD-3-Clause. * This file is part of Snippeteer which is released under BSD-3-Clause.
* See file 'LICENSE' for full license details. * See file 'LICENSE' for full license details.
* Created by Timo Hocker <timo@scode.ovh>, March 2020 * Created by Timo Hocker <timo@scode.ovh>, March 2020
*/ */
/* eslint-disable no-sync */ /* eslint-disable no-sync */
/* eslint-disable no-console */ /* eslint-disable no-console */
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */
@ -26,14 +28,15 @@ async function map_all_files (folder, func) {
if ([ 'node_modules' ].includes (file)) if ([ 'node_modules' ].includes (file))
continue; continue;
const abs_path = path.join (folder, file); const abs_path = path.join (folder, file);
if ((await fs.stat (abs_path)).isDirectory ()) if ((await fs.stat (abs_path)).isDirectory ()) {
map_all_files (abs_path, func); map_all_files (abs_path, func);
continue;
const data = await fs.readFile (abs_path); }
const res = func (data); const data = await fs.readFile (abs_path, 'utf-8');
const res = func (data, file);
if (res === null) if (res === null)
continue; continue;
await fs.writeFile (abs_path, res); await fs.writeFile (abs_path, res, 'utf-8');
} }
} }
@ -80,11 +83,13 @@ function get_copyright_notice (license = '', software = '') {
* @param {string} software software name * @param {string} software software name
*/ */
async function fix_all_copy (folder, license = '', software = '') { async function fix_all_copy (folder, license = '', software = '') {
const regex = /\/\*\s+\*\sCopyright[\s\S]*?\*\//gu; const regex = /\/\*\s+\*\sCopyright[\s\S]*?\*\/\n{0,2}/gu;
await map_all_files (folder, (data) => { await map_all_files (folder, (data, filename) => {
if (!regex.test (data)) const shebang = /^#!.*?\n\n/gu;
const shebang_line = shebang.exec(data);
if (!/\.js$/.test(filename) && !regex.test (data))
return null; return null;
return get_copyright_notice (license, software) + data.replace (regex, ''); return (shebang_line ? shebang_line[0] : '') + get_copyright_notice (license, software) + data.replace (regex, '').replace(shebang, '');
}); });
} }