forked from microsoft/devicescript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogparse.ts
More file actions
24 lines (22 loc) · 758 Bytes
/
logparse.ts
File metadata and controls
24 lines (22 loc) · 758 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import * as fsp from "node:fs/promises"
import { parseLog } from "@devicescript/compiler"
export interface LogParseOptions {
stats?: boolean
generation?: string
}
export async function logParse(fn: string, options: LogParseOptions) {
const h = await fsp.open(fn, "r")
const r = await parseLog((off, size) => {
const r = Buffer.alloc(size)
return h.read(r, 0, r.length, off).then(() => r)
})
console.log(await r.dump())
if (options.generation != undefined) {
const genidx = parseInt(options.generation)
if (genidx) {
const gen = await r.generation(genidx)
if (options.stats) console.log(await gen.computeStats())
else await gen.forEachEvent()
}
}
}