Skip to content

Commit ee79d7d

Browse files
committed
admin: added diff scripts for build page
1 parent aff7add commit ee79d7d

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src.ts/_admin/generate-diffs.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
1+
import fs from "fs";
2+
13
import { getVersions } from "./utils/npm.js";
24
import { resolve } from "./utils/path.js";
35
import { getDiff } from "./utils/git.js";
46

7+
function escver(v: string): string {
8+
return v.replace(/\./, "-");
9+
}
10+
511
(async function() {
612
let versions = await getVersions("ethers");
713
versions = versions.filter((h) => (h.version.match(/^6\.[0-9]+\.[0-9]+$/)));
8-
for (let i = 1; i < versions.length; i++) {
9-
const tag0 = versions[i - 1].gitHead, tag1 = versions[i].gitHead;
10-
const diff = await getDiff(resolve("dist/ethers.js"), tag0, tag1);
11-
console.log(diff);
14+
fs.writeFileSync(resolve("misc/diffs/versions.txt"), versions.map((h) => h.version).join(","));
15+
for (let i = 0; i < versions.length; i++) {
16+
for (let j = i + 1; j < versions.length; j++) {
17+
const filename = resolve(`misc/diffs/diff-${ escver(versions[i].version) }_${ escver(versions[j].version) }.txt`);
18+
if (fs.existsSync(filename)) { continue; }
19+
const tag0 = versions[i].gitHead, tag1 = versions[j].gitHead;
20+
const diff = await getDiff(resolve("src.ts"), tag0, tag1);
21+
console.log({ diff });
22+
fs.writeFileSync(filename, diff);
23+
}
1224
}
1325
})();

src.ts/_admin/utils/git.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export async function getModifiedTime(filename: string): Promise<null | number>
3737

3838
return null;
3939
}
40+
4041
export interface GitLog {
4142
commit: string;
4243
author: string;
@@ -89,3 +90,9 @@ export async function getDiff(filename: string, tag0: string, tag1: string): Pro
8990
if (!result.ok) { throw new Error(`git log error`); }
9091
return result.stdout.trim();
9192
}
93+
94+
export async function getTags(): Promise<Array<string>> {
95+
const result = await run("git", [ "tag" ]);
96+
if (!result.ok) { throw new Error(`git log error`); }
97+
return result.stdout.trim().split("\n");
98+
}

0 commit comments

Comments
 (0)