/
check_licence.ts
45 lines (40 loc) · 1.11 KB
/
check_licence.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { walk } from "../fs/walk.ts";
const EXTENSIONS = [".mjs", ".js", ".ts", ".rs"];
const EXCLUDED_DIRS = [
"node/_module",
"node/_tools/test",
"node/_tools/versions",
"dotenv/testdata",
"fs/testdata",
"http/testdata",
"node/testdata",
"crypto/_wasm/target",
"encoding/varint/_wasm/target",
"_tools/testdata",
];
const ROOT = new URL("../", import.meta.url);
const FIRST_YEAR = 2018;
const CURRENT_YEAR = new Date().getFullYear();
const COPYRIGHT =
`// Copyright ${FIRST_YEAR}-${CURRENT_YEAR} the Deno authors. All rights reserved. MIT license.`;
let failed = false;
for await (
const { path } of walk(ROOT, {
exts: EXTENSIONS,
skip: EXCLUDED_DIRS.map((path) => new RegExp(path + "$")),
includeDirs: false,
})
) {
const content = await Deno.readTextFile(path);
if (!content.includes(COPYRIGHT)) {
console.error(`Missing/incorrect copyright header: ${path}`);
if (!failed) {
failed = true;
}
}
}
if (failed) {
console.info(`Copyright header should be "${COPYRIGHT}"`);
Deno.exit(1);
}