From 34b509d06226d2b64e03f47dbbb11ea53cb21f6e Mon Sep 17 00:00:00 2001 From: Matthew Welch Date: Mon, 25 Jan 2021 16:37:18 -0800 Subject: [PATCH] Add support for command line arguments Can accept --debug argument to show the chrome development tools --- package.json | 3 ++- src/index.ts | 22 ++++++++++++++++++---- yarn.lock | 5 +++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3413f15..920ba31 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "description": "My Electron application description", "main": "build/index.js", "scripts": { - "start": "electron-forge start", + "start": "electron-forge start -- --debug", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", @@ -57,6 +57,7 @@ "dependencies": { "@types/jquery": "^3.5.5", "commonjs": "^0.0.1", + "electron-log": "^4.3.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^6.0.1", "jquery": "^3.5.1", diff --git a/src/index.ts b/src/index.ts index 756db58..118eef6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,7 @@ import * as Store from "electron-store"; import * as fs from "fs"; import * as path from "path"; import * as util from 'util'; +import * as log from "electron-log"; import { Validator } from "jsonschema"; import * as jsdom from "jsdom"; const { JSDOM } = jsdom; @@ -27,9 +28,11 @@ let all_schemas = [ let schema_updaters = { "1.0.0_schema.json": update_1_0_0_schema } +log.transports.file.resolvePath = () => path.join(app.getAppPath(), "debug.log"); const store = new Store(); let current_file = null; +let debug = false; let menu_template:MenuItemConstructorOptions[] = [ { label: "File", @@ -115,7 +118,7 @@ if (require('electron-squirrel-startup')) { // eslint-disable-line global-requir // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. -app.on('ready', createSplashScreen); +app.on('ready', start); // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits @@ -130,10 +133,17 @@ app.on('activate', () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (BrowserWindow.getAllWindows().length === 0) { - createSplashScreen(); + start(); } }); +function start() { + if (process.argv.includes("--debug")) { + debug = true; + } + createSplashScreen(); +} + function createSplashScreen() { const splash_screen = new BrowserWindow({ width: 806, @@ -154,7 +164,9 @@ function createSplashScreen() { splash_screen.loadFile(path.join(app.getAppPath(), "src/splash.html")); // Open the DevTools. - // splash_screen.webContents.openDevTools(); + if (debug) { + splash_screen.webContents.openDevTools(); + } // store.openInEditor(); } @@ -175,7 +187,9 @@ function createEditorWindow(json) { main_window.webContents.send("open", json); }); // Open the DevTools. - // main_window.webContents.openDevTools(); + if (debug) { + main_window.webContents.openDevTools(); + } return main_window; } diff --git a/yarn.lock b/yarn.lock index d8c2086..1bb954a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1058,6 +1058,11 @@ electron-installer-redhat@^3.0.0: word-wrap "^1.2.3" yargs "^15.1.0" +electron-log@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" + integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== + electron-notarize@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.0.0.tgz#bc925b1ccc3f79e58e029e8c4706572b01a9fd8f"