25 lines
1.3 KiB
TypeScript
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
|
|
}
|