Standardize log folders

Move showing dirs to the main process.
This commit is contained in:
john liddell
2020-09-25 14:26:28 -05:00
parent 7dd3ee5eab
commit edfce9538b
10 changed files with 55 additions and 11 deletions

View File

@@ -1,14 +1,20 @@
import { ipcMain } from "electron";
import { ipcMain, shell } from "electron";
import * as fs from 'fs';
import * as path from 'path';
import { CURSE_HASH_FILE_CHANNEL, LIST_FILES_CHANNEL } from './src/common/constants';
import { CURSE_HASH_FILE_CHANNEL, LIST_FILES_CHANNEL, SHOW_DIRECTORY } from './src/common/constants';
import { CurseHashFileRequest } from './src/common/models/curse-hash-file-request';
import { CurseHashFileResponse } from './src/common/models/curse-hash-file-response';
import { ListFilesRequest } from "./src/common/models/list-files-request";
import { ListFilesResponse } from "./src/common/models/list-files-response";
import { ShowDirectoryRequest } from "./src/common/models/show-directory-request";
const nativeAddon = require('./build/Release/addon.node');
ipcMain.on(SHOW_DIRECTORY, async (evt, arg: ShowDirectoryRequest) => {
const result = await shell.openPath(arg.sourceDir);
evt.reply(arg.responseKey, true);
})
ipcMain.on(CURSE_HASH_FILE_CHANNEL, async (evt, arg: CurseHashFileRequest) => {
// console.log(CURSE_HASH_FILE_CHANNEL, arg);

View File

@@ -22,6 +22,15 @@ import { ListFilesResponse } from './src/common/models/list-files-response';
import { ncp } from 'ncp';
import * as rimraf from 'rimraf';
import './ipc-events';
import * as log from 'electron-log';
const LOG_PATH = path.join(app.getPath('userData'), 'logs');
app.setAppLogsPath(LOG_PATH);
log.transports.file.resolvePath = (variables: log.PathVariables, message?: log.LogMessage) => {
console.log('RES', path.join(LOG_PATH, variables.fileName))
return path.join(LOG_PATH, variables.fileName);
}
log.info('Main starting');
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors');
electronDl();

View File

@@ -1,5 +1,5 @@
import { Injectable } from "@angular/core";
import { COPY_DIRECTORY_CHANNEL, DELETE_DIRECTORY_CHANNEL, LIST_FILES_CHANNEL, READ_FILE_CHANNEL, RENAME_DIRECTORY_CHANNEL } from "common/constants";
import { COPY_DIRECTORY_CHANNEL, DELETE_DIRECTORY_CHANNEL, LIST_FILES_CHANNEL, READ_FILE_CHANNEL, RENAME_DIRECTORY_CHANNEL, SHOW_DIRECTORY } from "common/constants";
import { CopyDirectoryRequest } from "common/models/copy-directory-request";
import { DeleteDirectoryRequest } from "common/models/delete-directory-request";
import { ElectronService } from "../electron/electron.service";
@@ -9,6 +9,8 @@ import { ReadFileResponse } from "common/models/read-file-response";
import { ReadFileRequest } from "common/models/read-file-request";
import { ListFilesResponse } from "common/models/list-files-response";
import { ListFilesRequest } from "common/models/list-files-request";
import { ShowDirectoryRequest } from "common/models/show-directory-request";
import { v4 as uuidv4 } from 'uuid';
@Injectable({
providedIn: 'root'
@@ -19,6 +21,19 @@ export class FileService {
private _electronService: ElectronService
) { }
public showDirectory(sourceDir: string) {
return new Promise((resolve, reject) => {
const eventHandler = (_evt: any, arg: boolean) => {
resolve(arg);
};
const request: ShowDirectoryRequest = { sourceDir, responseKey: uuidv4() };
this._electronService.ipcRenderer.once(request.responseKey, eventHandler);
this._electronService.ipcRenderer.send(SHOW_DIRECTORY, request);
})
}
public deleteDirectory(sourcePath: string) {
return new Promise((resolve, reject) => {
const eventHandler = (_evt: any, arg: Error) => {

View File

@@ -20,6 +20,7 @@ import * as compareVersions from 'compare-versions';
import { DownloadSevice } from "../download/download.service";
import { Preferences } from "../../../constants";
import { PreferenceChange } from "app/models/wowup/preference-change";
import { FileService } from "../files/file.service";
const LATEST_VERSION_CACHE_KEY = 'latest-version-response';
@@ -32,7 +33,7 @@ export class WowUpService {
public readonly updaterName = 'WowUpUpdater.exe';
public readonly applicationFolderPath: string = remote.app.getPath('userData');
public readonly applicationLogsFolderPath: string = join(this.applicationFolderPath, 'logs');
public readonly applicationLogsFolderPath: string = remote.app.getPath('logs');
public readonly applicationDownloadsFolderPath: string = join(this.applicationFolderPath, 'downloads');
public readonly applicationUpdaterPath: string = join(this.applicationFolderPath, this.updaterName);
public readonly applicationVersion: string = AppConfig.appVersion;
@@ -43,6 +44,7 @@ export class WowUpService {
private _preferenceStorageService: PreferenceStorageService,
private _downloadService: DownloadSevice,
private _electronService: ElectronService,
private _fileService: FileService,
private _cacheService: CachingService,
private _wowUpApiService: WowUpApiService
) {
@@ -97,7 +99,7 @@ export class WowUpService {
}
public showLogsFolder() {
this._electronService.shell.openExternal(this.applicationLogsFolderPath, { activate: true });
this._fileService.showDirectory(this.applicationLogsFolderPath);
}
public isUpdateAvailable(): Observable<boolean> {

View File

@@ -7,4 +7,5 @@ export const LIST_FILES_CHANNEL = 'list-files';
export const READ_FILE_CHANNEL = 'read-file';
export const UNZIP_FILE_CHANNEL = 'unzip-file';
export const COPY_FILE_CHANNEL = 'copy-file';
export const CURSE_HASH_FILE_CHANNEL = 'curse-hash-file';
export const CURSE_HASH_FILE_CHANNEL = 'curse-hash-file';
export const SHOW_DIRECTORY = 'show-directory';

View File

@@ -1,6 +1,6 @@
import { IpcResponse } from "./ipc-response";
import { IpcRequest } from "./ipc-request";
export interface CurseHashFileRequest extends IpcResponse {
export interface CurseHashFileRequest extends IpcRequest {
filePath?: string;
targetString?: string;
targetStringEncoding?: BufferEncoding;

View File

@@ -0,0 +1,3 @@
export interface IpcRequest {
responseKey: string;
}

View File

@@ -1,3 +0,0 @@
export interface IpcResponse {
responseKey: string;
}

View File

@@ -0,0 +1,5 @@
import { IpcRequest } from "./ipc-request";
export interface ShowDirectoryRequest extends IpcRequest {
sourceDir: string;
}

View File

@@ -4,6 +4,12 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { AppConfig } from './environments/environment';
import * as log from 'electron-log';
import { app, remote } from 'electron';
import { join } from 'path';
log.transports.file.resolvePath = (variables: log.PathVariables, message?: log.LogMessage) => {
return join(remote.app.getPath('logs'), variables.fileName);
}
if (AppConfig.production) {
enableProdMode();