Cleaning up file sync
This commit is contained in:
parent
41127abee8
commit
9d8512475b
4 changed files with 25 additions and 21 deletions
|
@ -13,7 +13,7 @@
|
|||
},
|
||||
"logFiles": {
|
||||
"update": true,
|
||||
"interval": 1,
|
||||
"interval": 30,
|
||||
"remoteLocation": "/logs/",
|
||||
"localLocation": "D:\\bitburner_game_logs"
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
15
src/index.ts
15
src/index.ts
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue