microgrok/example.ts

39 lines
2.4 KiB
TypeScript
Executable file

#!/bin/env -S deno run
import { def } from "./mod.ts"
const date = "{{month}} {{day}} {{h}}:{{m}}:{{s}}" as const;
const service = def(`${date} {{device}} {{service}}[{{pid}}]: {{line}}`);
const kernel_ = def(`${date} {{device}} kernel: {{line}}`);
const lines = [
"août 06 09:25:18 navis systemd[1]: Finished Load Kernel Module configfs.",
"août 06 09:25:18 navis systemd[1]: modprobe@drm.service: Succeeded.",
"août 06 09:25:18 navis systemd[1]: Finished Load Kernel Module drm.",
"août 06 09:25:18 navis systemd[1]: Mounting Kernel Configuration File System...",
"août 06 09:25:18 navis kernel: fuse: init (API version 7.32)",
"août 06 09:25:18 navis systemd[1]: modprobe@fuse.service: Succeeded.",
"août 06 09:25:18 navis systemd[1]: Finished Load Kernel Module fuse.",
"août 06 09:25:18 navis systemd[1]: Mounted Kernel Configuration File System.",
"août 06 09:25:18 navis systemd[1]: Mounting FUSE Control File System...",
"août 06 09:25:18 navis systemd[1]: Mounted FUSE Control File System.",
"août 06 09:25:18 navis kernel: EXT4-fs (sda4): re-mounted. Opts: errors=remount-ro",
"août 06 09:25:18 navis systemd[1]: Finished Remount Root and Kernel File Systems.",
"août 06 09:25:18 navis systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.",
"août 06 09:25:18 navis systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.",
"août 06 09:25:18 navis systemd[1]: Starting Load/Save Random Seed...",
"août 06 09:25:18 navis systemd[1]: Starting Create System Users...",
"août 06 09:25:18 navis kernel: lp: driver loaded but no devices found",
"août 06 09:25:18 navis kernel: ppdev: user-space parallel port driver",
"août 06 09:25:18 navis systemd[1]: Finished Load/Save Random Seed.",
"août 06 09:25:18 navis systemd[1]: Finished Load Kernel Modules.",
"août 06 09:25:18 navis systemd[1]: Condition check resulted in First Boot Complete being skipped.",
"août 06 09:25:18 navis systemd[1]: Starting Apply Kernel Variables...",
"août 06 09:25:18 navis systemd[1]: Finished Create System Users.",
];
const mapped = lines.map(line => service.or(kernel_).get(line));
const failed = mapped.filter(m => m === null).length;
const content = mapped.filter(m => m !== null).map(m => "service" in m! ? [m.service, m.line] : ["kernel", m!.line]);
console.log({ failed, content })