Cleaning up file sync

This commit is contained in:
aef123 2023-05-06 21:03:06 -07:00
parent 41127abee8
commit 9d8512475b
4 changed files with 25 additions and 21 deletions

View file

@ -13,7 +13,7 @@
},
"logFiles": {
"update": true,
"interval": 1,
"interval": 30,
"remoteLocation": "/logs/",
"localLocation": "D:\\bitburner_game_logs"
},

View file

@ -3,6 +3,7 @@ import { config } from "./config";
import { EventType } from "./eventTypes";
import { mkdir } from "fs/promises";
import { resolve } from "path";
import { getAllFiles } from "./networking/messageGenerators";
import type { Signal } from "signal-js";
import type { File } from "./interfaces";
@ -23,6 +24,17 @@ export async function setupLogsFolder() {
}
}
export async function monitorLogs(signaller: Signal)
{
if (config.get("logFiles").update) {
await setupLogsFolder();
while(true) {
signaller.emit(EventType.MessageSend, getAllFiles());
await new Promise((resolve) => setTimeout(resolve, config.get("logFiles").interval * 1000));
}
}
}
function isError(err: unknown): err is NodeJS.ErrnoException {
return (err as NodeJS.ErrnoException).code !== undefined;
}

View file

@ -1,4 +1,4 @@
import { setupWatch, setupLogsFolder } from "./fileWatch";
import { setupWatch, monitorLogs } from "./fileWatch";
import { config, loadConfig } from "./config";
import { setupSocket } from "./networking/webSocket";
import signal from "signal-js";
@ -21,9 +21,8 @@ export async function start() {
const socket = setupSocket(signal);
let isConnected: boolean = false;
await setupLogsFolder();
// Add a handler for received messages.
signal.on(EventType.MessageReceived, (msg: RawData) => messageHandler(signal, msg, watch.paths, config.get("logFiles").update, config.get("logFiles").remoteLocation, config.get("logFiles").localLocation));
signal.on(EventType.MessageReceived, (msg: RawData) => messageHandler(signal, msg, watch.paths));
// Add a handler for when a connection to a game is made.
signal.on(EventType.ConnectionMade, () => {
@ -68,13 +67,5 @@ export async function start() {
process.exit();
});
if (config.get("logFiles").update) {
while(true) {
if ((isConnected as boolean) === true) {
signal.emit(EventType.MessageSend, getAllFiles());
}
await new Promise((resolve) => setTimeout(resolve, config.get("logFiles").interval * 1000));
}
}
await monitorLogs(signal);
}

View file

@ -32,14 +32,15 @@ export function isStringArray(s: Array<unknown>): s is string[] {
return s.every((s) => typeof s === "string");
}
export function messageHandler(signaller: Signal,
data: RawData,
paths: Map<string, Stats>,
updateLogs: boolean,
remoteLogFolder: string,
localLogFolder: string) {
export function messageHandler(signaller: Signal, data: RawData, paths: Map<string, Stats>) {
let updateLogs: boolean = config.get("logFiles").update;
let remoteLogFolder: string = config.get("logFiles").remoteLocation;
let localLogFolder: string = config.get("logFiles").localLocation;
let incoming;
try {
incoming = deserialize(data);
} catch (err) {