Skip to content

Commit 1e656dc

Browse files
committed
fix: check command uses process.json
1 parent 738bba1 commit 1e656dc

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

src/commands/check.ts

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,57 @@
11
import ansis from "ansis";
22
import { Command } from "commander";
33
import fs from "fs";
4+
import path from "path";
45

6+
import { LOCALNET_DIR } from "../constants";
57
import { sleep } from "../utils";
68

7-
const LOCALNET_JSON_FILE = "./localnet.json";
8-
99
const localnetCheck = async (options: { delay: number }) => {
1010
await sleep(options.delay * 1000);
1111

12-
if (!fs.existsSync(LOCALNET_JSON_FILE)) {
13-
console.log(ansis.red("Localnet is not running (JSON file missing)."));
12+
if (!fs.existsSync(LOCALNET_DIR)) {
13+
console.log(ansis.red("Localnet is not running (directory missing)."));
14+
process.exit(1);
15+
}
16+
17+
const processFile = path.join(LOCALNET_DIR, "process.json");
18+
if (!fs.existsSync(processFile)) {
19+
console.log(ansis.red("Localnet is not running (process.json missing)."));
20+
process.exit(1);
21+
}
22+
23+
let jsonData: unknown;
24+
try {
25+
jsonData = JSON.parse(fs.readFileSync(processFile, "utf-8"));
26+
} catch (error) {
27+
console.log(ansis.red("Failed to parse process.json."));
28+
process.exit(1);
29+
}
30+
31+
const processes = (
32+
jsonData as { processes?: { command: string; pid: number }[] }
33+
)?.processes;
34+
if (!Array.isArray(processes)) {
35+
console.log(
36+
ansis.red("Invalid process.json format (missing processes array).")
37+
);
38+
process.exit(1);
39+
}
40+
41+
const pid = processes.find((p) => p?.command === "anvil")?.pid;
42+
if (!pid) {
43+
console.log(ansis.red("Anvil process not found in process.json."));
1444
process.exit(1);
1545
}
1646

17-
const jsonData = JSON.parse(fs.readFileSync(LOCALNET_JSON_FILE, "utf-8"));
18-
const pid = jsonData.pid;
47+
const pidNum = Number(pid);
1948

2049
try {
21-
process.kill(Number(pid), 0);
22-
console.log(ansis.green(`Localnet is running (PID: ${pid}).`));
50+
process.kill(pidNum, 0);
51+
console.log(ansis.green(`Localnet is running (anvil PID: ${pidNum}).`));
2352
process.exit(0);
2453
} catch (err) {
25-
console.log(ansis.yellow(`Localnet process (PID: ${pid}) is not running.`));
54+
console.log(ansis.yellow(`Anvil process (PID: ${pidNum}) is not running.`));
2655
process.exit(1);
2756
}
2857
};

0 commit comments

Comments
 (0)