mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { existsSync } from "node:fs";
|
|
import { dirname, join } from "node:path";
|
|
|
|
const bunRepo = dirname(import.meta.dir);
|
|
const webkitRepo = join(bunRepo, "vendor/WebKit");
|
|
if (!existsSync(webkitRepo)) {
|
|
console.log("could not find WebKit clone");
|
|
console.log("clone https://github.com/oven-sh/WebKit.git to vendor/WebKit");
|
|
console.log("or create a symlink/worktree to an existing clone");
|
|
process.exit(1);
|
|
}
|
|
|
|
process.chdir(webkitRepo);
|
|
const checkedOutCommit = (await Bun.$`git rev-parse HEAD`.text()).trim();
|
|
const cmakeContents = await Bun.file(join(bunRepo, "cmake/tools/SetupWebKit.cmake")).text();
|
|
const expectedCommit = cmakeContents.match(/set\(WEBKIT_VERSION ([0-9a-f]{40})\)/)![1];
|
|
|
|
if (checkedOutCommit == expectedCommit) {
|
|
console.log(`already at commit ${expectedCommit}`);
|
|
} else {
|
|
console.log(`changing from ${checkedOutCommit} to ${expectedCommit}`);
|
|
await Bun.$`git checkout main`;
|
|
await Bun.$`git pull`;
|
|
// it is OK that this leaves you with a detached HEAD
|
|
await Bun.$`git checkout ${expectedCommit}`;
|
|
}
|