Files
dwatcher/src/lib/dwatch.ts
2020-04-30 15:30:20 +02:00

25 lines
1.3 KiB
TypeScript

import {Conf} from './types/conf'
import * as yaml from 'js-yaml';
import * as fs from 'fs';
import {ws2pWatcher} from "./watchers/ws2p/ws2p-watcher";
import {bmaWatcher} from "./watchers/bma/bma-watcher";
import {dprobeHeartbeat} from './watchers/dprobe/dprobe-heartbeat-watcher'
import {webDiffWatcher} from "./watchers/webdiff/webdiff-watcher";
import {Watcher} from "./types/state";
import {headWatcher} from "./watchers/bma/head-watcher";
import {jsonWatcher} from "./watchers/wotwizard/json-watcher";
export async function dwatch(confFile: string) {
const yml = fs.readFileSync(confFile, 'utf8')
const conf = yaml.load(yml) as Conf
const watchers: Watcher[] = [];
(await Promise.all((conf.ws2pServers || []).map(ws2pWatcher(conf)))).forEach(w => watchers.push(w));
(await Promise.all((conf.bmaServers || []).map(bmaWatcher(conf)))).forEach(w => watchers.push(w));
(await Promise.all((conf.dprobeHeartbeats || []).map(dprobeHeartbeat(conf)))).forEach(w => watchers.push(w));
(await Promise.all((conf.webDiffServers || []).map(webDiffWatcher(conf)))).forEach(w => watchers.push(w));
(await Promise.all((conf.headServers || []).map(headWatcher(conf)))).forEach(w => watchers.push(w));
(await Promise.all((conf.wwMeta || []).map(jsonWatcher(conf)))).forEach(w => watchers.push(w));
return watchers
}