New dirWatch logic when injesting meta files

This commit is contained in:
Chrystian Huot 2020-05-20 15:07:24 -04:00
parent b7fbde0e63
commit bbe40de6ce

View file

@ -82,22 +82,22 @@ class DirWatch {
const talkgroup = parse(dirWatch.talkgroup); const talkgroup = parse(dirWatch.talkgroup);
if (isNaN(system) || isNaN(talkgroup)) {
console.log(`Unknown system or talkgroup for ${filename}`);
return;
}
switch (dirWatch.type) { switch (dirWatch.type) {
case 'trunk-recorder': { case 'trunk-recorder': {
setTimeout(async () => {
const metaFile = path.resolve(file.dir, `${file.name}.json`); const metaFile = path.resolve(file.dir, `${file.name}.json`);
if (!fs.existsSync(metaFile)) { const metaWatcher = chokidar.watch(metaFile, { awaitWriteFinish: true });
console.error(`File not found: ${metaFile}`);
return; const timeout = setTimeout(() => {
if (!metaWatcher.closed) {
metaWatcher.close();
} }
}, 60 * 1000);
metaWatcher.on('add', async () => {
clearTimeout(timeout);
await metaWatcher.close();
let meta; let meta;
@ -117,20 +117,26 @@ class DirWatch {
this.unlink(metaFile); this.unlink(metaFile);
} }
} }
}, 2000); });
break; break;
} }
case 'sdrtrunk': { case 'sdrtrunk': {
setTimeout(async () => {
const metaFile = path.resolve(file.dir, `${file.name}.mbe`); const metaFile = path.resolve(file.dir, `${file.name}.mbe`);
if (!fs.existsSync(metaFile)) { const metaWatcher = chokidar.watch(metaFile, { awaitWriteFinish: true });
console.error(`File not found: ${metaFile}`);
return; const timeout = setTimeout(() => {
if (!metaWatcher.closed) {
metaWatcher.close();
} }
}, 60 * 1000);
metaWatcher.on('add', async () => {
clearTimeout(timeout);
await metaWatcher.close();
let meta; let meta;
@ -148,7 +154,7 @@ class DirWatch {
if (dirWatch.deleteAfter) { if (dirWatch.deleteAfter) {
this.unlink(metaFile); this.unlink(metaFile);
} }
}, 2000); });
break; break;
} }