summary refs log tree commit diff
path: root/src/bundle/stats.ts
blob: 3a9b2d85f48b6fc48a9c9f00a7a58845334cbb77 (plain) (blame)
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
import os from "os";
import osu from "node-os-utils";
import { red } from "picocolors";

export function initStats() {
	console.log(`[Path] running in ${__dirname}`);
	try {
		console.log(`[CPU] ${osu.cpu.model()} Cores x${osu.cpu.count()}`);
	} catch {
		console.log("[CPU] Failed to get cpu model!");
	}

	console.log(`[System] ${os.platform()} ${os.arch()}`);
	console.log(`[Process] running with PID: ${process.pid}`);
	if (process.getuid && process.getuid() === 0) {
		console.warn(
			red(
				`[Process] Warning fosscord is running as root, this highly discouraged and might expose your system vulnerable to attackers. Please run fosscord as a user without root privileges.`,
			),
		);
	}

	// TODO: node-os-utils might have a memory leak, more investigation needed
	// TODO: doesn't work if spawned with multiple threads
	// setInterval(async () => {
	// 	const [cpuUsed, memory, network] = await Promise.all([
	// 		osu.cpu.usage(),
	// 		osu.mem.info(),
	// 		osu.netstat.inOut(),
	// 	]);
	// 	var networkUsage = "";
	// 	if (typeof network === "object") {
	// 		networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`;
	// 	}

	// 	console.log(
	// 		`[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round(
	// 			process.memoryUsage().rss / 1024 / 1024
	// 		)}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
	// 	);
	// }, 1000 * 60 * 5);
}