Browse Source

support setting debug mode via opening second instance and plus dev mode argument

MaysWind 3 years ago
parent
commit
261e59144b

+ 4 - 0
app/scripts/core/root.js

@@ -681,6 +681,10 @@
             ariaNgCommonService.showError(message);
         });
 
+        ariaNgNativeElectronService.onMainProcessChangeDevMode(function (event, devMode) {
+            ariaNgSettingService.setDebugMode(devMode);
+        });
+
         ariaNgSettingService.setDebugMode(ariaNgNativeElectronService.isDevMode());
 
         ariaNgSettingService.onFirstAccess(function () {

+ 3 - 0
app/scripts/services/ariaNgNativeElectronService.js

@@ -325,6 +325,9 @@
             onMainWindowUnmaximize: function (callback) {
                 onMainProcessEvent('on-main-window-unmaximized', callback);
             },
+            onMainProcessChangeDevMode: function (callback) {
+                onMainProcessEvent('on-main-change-dev-mode', callback);
+            },
             onMainProcessShowError: function (callback) {
                 onMainProcessEvent('on-main-show-error', callback);
             },

+ 6 - 2
main/cmd.js

@@ -34,7 +34,7 @@ function parseArguments(argv) {
     const actualArgv = [];
 
     for (let i = 1; i < argv.length; i++) {
-        if (argv[i][0] !== '-') {
+        if (argv[i][0] !== '-' || argv[i] === '-d' || argv[i] === '--development') {
             actualArgv.push(argv[i]);
         }
     }
@@ -42,7 +42,11 @@ function parseArguments(argv) {
     try {
         return yargs(actualArgv)
             .command({
-                command: '$0 [file]'
+                command: '$0 [file] [options]'
+            })
+            .option('development', {
+                alias: 'd',
+                type: 'boolean'
             })
             .argv;
     } catch (ex) {

+ 5 - 0
main/ipc/render-proecss.js

@@ -57,6 +57,10 @@ let notifyRenderProcessWindowUnmaximized = function (maximized) {
     }
 };
 
+let notifyRenderProcessChangeDevMode = function (devMode) {
+    core.mainWindow.webContents.send('on-main-change-dev-mode', devMode);
+};
+
 let notifyRenderProcessShowErrorMessage = function (message) {
     core.mainWindow.webContents.send('on-main-show-error', message);
 };
@@ -147,6 +151,7 @@ module.exports = {
     notifyRenderProcessLogError: notifyRenderProcessLogError,
     notifyRenderProcessWindowMaximized: notifyRenderProcessWindowMaximized,
     notifyRenderProcessWindowUnmaximized: notifyRenderProcessWindowUnmaximized,
+    notifyRenderProcessChangeDevMode: notifyRenderProcessChangeDevMode,
     notifyRenderProcessShowErrorMessage: notifyRenderProcessShowErrorMessage,
     notifyRenderProcessNavigateToNewTask: notifyRenderProcessNavigateToNewTask,
     notifyRenderProcessNavigateToAriaNgSettings: notifyRenderProcessNavigateToAriaNgSettings,

+ 36 - 25
main/main.js

@@ -81,40 +81,46 @@ if (config.execCommandOnStartup) {
         detached: config.execDetachedCommandOnStartup,
     };
 
-    if (global.settings.isDevMode) {
-        options.onoutput = function (output) {
-            const lastOutput = (core.startupCommandOutput.length > 1 ? core.startupCommandOutput[core.startupCommandOutput.length - 1] : null);
-
-            if (lastOutput && lastOutput.source === output.source && lastOutput.content === output.content) {
-                lastOutput.count++
-            } else {
-                if (core.startupCommandOutput.length >= constants.startupCommandConstants.outputLogLimit) {
-                    core.startupCommandOutput.shift();
-                }
+    options.onoutput = function (output) {
+        if (!global.settings.isDevMode) {
+            return;
+        }
 
-                core.startupCommandOutput.push({
-                    time: new Date(),
-                    type: 'output',
-                    source: output.source,
-                    content: output.content,
-                    count: output.count
-                });
-            }
-        };
+        const lastOutput = (core.startupCommandOutput.length > 1 ? core.startupCommandOutput[core.startupCommandOutput.length - 1] : null);
 
-        options.onerror = function (error) {
+        if (lastOutput && lastOutput.source === output.source && lastOutput.content === output.content) {
+            lastOutput.count++
+        } else {
             if (core.startupCommandOutput.length >= constants.startupCommandConstants.outputLogLimit) {
                 core.startupCommandOutput.shift();
             }
 
             core.startupCommandOutput.push({
                 time: new Date(),
-                type: 'error',
-                source: error.type,
-                content: error.error
+                type: 'output',
+                source: output.source,
+                content: output.content,
+                count: output.count
             });
-        };
-    }
+        }
+    };
+
+    options.onerror = function (error) {
+        if (!global.settings.isDevMode) {
+            return;
+        }
+
+        if (core.startupCommandOutput.length >= constants.startupCommandConstants.outputLogLimit) {
+            core.startupCommandOutput.shift();
+        }
+
+        core.startupCommandOutput.push({
+            time: new Date(),
+            type: 'error',
+            source: error.type,
+            content: error.error
+        });
+    };
 
     process.execCommandAsync(options);
 }
@@ -143,6 +149,11 @@ app.on('second-instance', (event, argv, workingDirectory, additionalData) => {
             secondInstanceArgv = cmd.parseArguments(argv);
         }
 
+        if (secondInstanceArgv && secondInstanceArgv.development) {
+            global.settings.isDevMode = !!secondInstanceArgv.development;
+            ipcRender.notifyRenderProcessChangeDevMode(!!secondInstanceArgv.development);
+        }
+
         if (secondInstanceArgv && secondInstanceArgv.file && file.isContainsSupportedFileArg(secondInstanceArgv.file)) {
             ipcRender.notifyRenderProcessNewNewTaskFromFileAfterViewLoaded(secondInstanceArgv.file);
             ipcRender.notifyRenderProcessNavigateToNewTask();