Final cleanup, ready for packing!

This commit is contained in:
punkfairie 2023-05-14 16:03:12 -07:00
parent 68bda87253
commit 2a97cb358f
6 changed files with 31 additions and 11 deletions

View file

@ -11,7 +11,7 @@ module.exports = {
}, },
{ {
name: '@electron-forge/maker-zip', name: '@electron-forge/maker-zip',
platforms: ['darwin'], platforms: ['darwin', 'win32'],
}, },
{ {
name: '@electron-forge/maker-deb', name: '@electron-forge/maker-deb',

View file

@ -1,7 +1,7 @@
{ {
"name": "ed-safari", "name": "ed-safari",
"productName": "ed-safari", "productName": "ed-safari",
"version": "0.1.0", "version": "1.0.0",
"description": "My Electron application description", "description": "My Electron application description",
"main": ".vite/build/main.js", "main": ".vite/build/main.js",
"scripts": { "scripts": {

View file

@ -18,6 +18,7 @@ export class Journal extends EventEmitter {
testing: string; testing: string;
location: System; location: System;
navRoute: System[]; navRoute: System[];
#tail?: TailType;
constructor(journalPath: string) { constructor(journalPath: string) {
super(); super();
@ -218,12 +219,12 @@ export class Journal extends EventEmitter {
// Watch the journal for changes. // Watch the journal for changes.
watch(): void { watch(): void {
const tail: TailType = new Tail(this.#path, {useWatchFile: true}); this.#tail = new Tail(this.#path, {useWatchFile: true});
Log.write(`Watching ${path.basename(this.#path)}...`); Log.write(`Watching ${path.basename(this.#path)}...`);
tail.on('line', (data) => data ? this.#parseLine(data) : undefined); this.#tail?.on('line', (data) => data ? this.#parseLine(data) : undefined);
tail.on('error', (err) => Log.write(`Tail error in Journal.watch(): ${err}`)); this.#tail?.on('error', (err) => Log.write(`Tail error in Journal.watch(): ${err}`));
} }
/* ------------------------------------------------------------------------ #parseLine() ---- */ /* ------------------------------------------------------------------------ #parseLine() ---- */
@ -296,7 +297,7 @@ export class Journal extends EventEmitter {
/* --------------------------------------------------------------------- #handleScanLine ---- */ /* --------------------------------------------------------------------- #handleScanLine ---- */
#handleScanLine(line: autoScan|detailedScan, DSS: boolean = false) { #handleScanLine(line: autoScan|detailedScan, DSS: boolean = false): void {
const dupChecker = {'BodyName': line.BodyName, 'BodyID': line.BodyID}; const dupChecker = {'BodyName': line.BodyName, 'BodyID': line.BodyID};
let body: Body|null = null; let body: Body|null = null;
@ -327,4 +328,10 @@ export class Journal extends EventEmitter {
Log.write(`Scan detected. Body: ${line.BodyName}.`); Log.write(`Scan detected. Body: ${line.BodyName}.`);
this.emit('BODY_SCANNED', body, DSS); this.emit('BODY_SCANNED', body, DSS);
} }
/* ---------------------------------------------------------------------------- shutdown ---- */
shutdown(): void {
this.#tail?.unwatch();
}
} }

View file

@ -14,6 +14,8 @@ export class Safari {
#journalPattern?: string; #journalPattern?: string;
journal?: Journal; journal?: Journal;
#watcher?: any;
private constructor(isPackaged: boolean) { private constructor(isPackaged: boolean) {
if (!isPackaged && os.platform() === 'linux') { // Account for WSL during development if (!isPackaged && os.platform() === 'linux') { // Account for WSL during development
this.#journalDir = "/mnt/c/Users/marle/Saved\ Games/Frontier\ Developments/Elite\ Dangerous/"; this.#journalDir = "/mnt/c/Users/marle/Saved\ Games/Frontier\ Developments/Elite\ Dangerous/";
@ -80,9 +82,16 @@ export class Safari {
watchJournalDir(): void { watchJournalDir(): void {
const options = {usePolling: true, persistent: true, ignoreInitial: true}; const options = {usePolling: true, persistent: true, ignoreInitial: true};
const watcher = chokidar.watch(this.#journalPattern, options); this.#watcher = chokidar.watch(this.#journalPattern, options);
watcher.on('ready', () => Log.write('Watching journal folder for changes...')); this.#watcher.on('ready', () => Log.write('Watching journal folder for changes...'));
watcher.on('add', () => this.journal = this.#getLatestJournal()); this.#watcher.on('add', () => this.journal = this.#getLatestJournal());
}
/* ---------------------------------------------------------------------------- shutdown ---- */
async shutdown(): Promise<void> {
this.journal?.shutdown();
await this.#watcher.close();
} }
} }

View file

@ -44,6 +44,7 @@ settings.on('CUSTOM_COLORS_SET', () => {
/* -------------------------------------------------------------------- close window handler ---- */ /* -------------------------------------------------------------------- close window handler ---- */
$('#closeBtn').on('click', () => { $('#closeBtn').on('click', () => {
safari.shutdown();
ipcRenderer.send('CLOSE_WINDOW'); ipcRenderer.send('CLOSE_WINDOW');
}); });

View file

@ -7,9 +7,11 @@ const { ipcRenderer } = require('electron');
const { setTimeout } = require('node:timers/promises'); const { setTimeout } = require('node:timers/promises');
const { basename } = require('node:path'); const { basename } = require('node:path');
import { Safari } from './models/Safari';
import { Settings } from './models/Settings'; import { Settings } from './models/Settings';
import { UI } from './models/UI'; import { UI } from './models/UI';
const safari = Safari.start();
const settings = Settings.get(); const settings = Settings.get();
if (settings.matrix) { if (settings.matrix) {
@ -25,13 +27,14 @@ settings.on('CUSTOM_COLORS_SET', () => {
/* -------------------------------------------------------------------- close window handler ---- */ /* -------------------------------------------------------------------- close window handler ---- */
$('#closeBtn').on('click', () => { $('#closeBtn').on('click', () => {
ipcRenderer.send('CLOSE_WINDOW') safari.shutdown();
ipcRenderer.send('CLOSE_WINDOW');
}) })
/* ---------------------------------------------------------------- load main window handler ---- */ /* ---------------------------------------------------------------- load main window handler ---- */
$('.backBtn').on('click', () => { $('.backBtn').on('click', () => {
ipcRenderer.send('LOAD_MAIN') ipcRenderer.send('LOAD_MAIN');
}) })
/* ------------------------------------------------------------------- insert current values ---- */ /* ------------------------------------------------------------------- insert current values ---- */