Files

11 lines
699 B
JavaScript
Executable File

#!/usr/bin/node
// Stand-in `journalctl --user -u UNIT --since @EPOCH -o cat` over $SD_STATE/journal.jsonl (the test's).
const fs=require('node:fs'),path=require('node:path');
const sd=process.env.SD_STATE,a=process.argv.slice(2);let unit='',since='';
for(let i=0;i<a.length;i++){if(a[i]==='-u')unit=a[++i];else if(a[i]==='--since')since=a[++i]}
fs.appendFileSync(path.join(sd,'journal-since.log'),since+'\n');
if(!/^@\d+$/.test(since))process.exit(1);
const from=Number(since.slice(1));
let lines=[];try{lines=fs.readFileSync(path.join(sd,'journal.jsonl'),'utf8').split('\n').filter(Boolean).map((l)=>JSON.parse(l))}catch{}
for(const o of lines)if(o.unit===unit&&o.epoch>=from)console.log(o.text);