1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | const fs = require("fs");
|
12 | const path = require("path");
|
13 |
|
14 | const packageFile = path.resolve("./package.json");
|
15 | const pkg = require(packageFile);
|
16 |
|
17 | const outDir = "./src";
|
18 | const outFile = `${outDir}/packageVersion.ts`;
|
19 |
|
20 | const license = pkg.license === "MIT" ? " Licensed under the MIT License.\n *" : "";
|
21 | const pkgName = pkg.name;
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | const pkgVersion = process.env.SETVERSION_CODEVERSION ? process.env.SETVERSION_CODEVERSION : pkg.version;
|
27 |
|
28 |
|
29 | if (!fs.existsSync(outDir)) {
|
30 | fs.mkdirSync(outDir);
|
31 | }
|
32 |
|
33 |
|
34 | const output =
|
35 | `/*!
|
36 | * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
37 | *${license}
|
38 | * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
39 | */
|
40 |
|
41 | export const pkgName = "${pkgName}";
|
42 | export const pkgVersion = "${pkgVersion}";
|
43 | `;
|
44 |
|
45 |
|
46 | if (fs.existsSync(outFile)) {
|
47 | const orig = fs.readFileSync(outFile, { encoding: "utf-8" });
|
48 | const orig_nocrlf = orig.replace(/(\r\n|\n|\r)/gm, "");
|
49 | const output_nocrlf = output.replace(/(\r\n|\n|\r)/gm, "");
|
50 | if (orig_nocrlf === output_nocrlf) {
|
51 | console.log(`${outFile} unchanged.`);
|
52 |
|
53 |
|
54 | process.exit();
|
55 | }
|
56 | }
|
57 |
|
58 |
|
59 | fs.writeFileSync(outFile, output);
|
60 | console.log(`${outFile} written.`);
|