Improved args parsing in and out of AppImage
This commit is contained in:
parent
b11e8bb74a
commit
9156033f22
@ -2,6 +2,7 @@ const { BrowserWindow } = require('electron');
|
|||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
||||||
const { menu } = require('./menu');
|
const { menu } = require('./menu');
|
||||||
|
const { argsParser } = require('./args-parser');
|
||||||
const { settingsManager } = require('./settings-manager');
|
const { settingsManager } = require('./settings-manager');
|
||||||
const { newtonFs } = require('./fs');
|
const { newtonFs } = require('./fs');
|
||||||
|
|
||||||
@ -72,7 +73,6 @@ const createWindow = (startType = "build", debug = false, args = []) => {
|
|||||||
// });
|
// });
|
||||||
|
|
||||||
return win;
|
return win;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -80,7 +80,8 @@ const createWindow = (startType = "build", debug = false, args = []) => {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
newton: {
|
newton: {
|
||||||
createWindow: createWindow,
|
createWindow: createWindow,
|
||||||
|
args: argsParser,
|
||||||
|
settings: settingsManager,
|
||||||
fs: newtonFs,
|
fs: newtonFs,
|
||||||
settings: settingsManager
|
|
||||||
}
|
}
|
||||||
};
|
};
|
94
newton/args-parser.js
Normal file
94
newton/args-parser.js
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
const { app } = require('electron');
|
||||||
|
|
||||||
|
|
||||||
|
let startType = "build";
|
||||||
|
let isDebug = false;
|
||||||
|
let args = [];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const loadKWArgs = () => {
|
||||||
|
console.log("\n\nStart KWArgs:");
|
||||||
|
|
||||||
|
const hasStartAs = app.commandLine.hasSwitch("start-as");
|
||||||
|
if (hasStartAs) {
|
||||||
|
startType = app.commandLine.getSwitchValue("start-as");
|
||||||
|
console.log("Has start-as switch...");
|
||||||
|
console.log(startType);
|
||||||
|
}
|
||||||
|
|
||||||
|
const hasDebug = app.commandLine.hasSwitch("app-debug");
|
||||||
|
if (hasDebug) {
|
||||||
|
isDebug = app.commandLine.getSwitchValue("app-debug");
|
||||||
|
console.log("Has app-debug switch...");
|
||||||
|
console.log(isDebug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadVArgs = () => {
|
||||||
|
console.log("\n\nStart VArgs:");
|
||||||
|
|
||||||
|
if (
|
||||||
|
process.argv[0].endsWith("electron")
|
||||||
|
) {
|
||||||
|
process.argv = process.argv.slice(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
process.argv[0].endsWith("/newton") ||
|
||||||
|
process.argv[0].endsWith(".AppImage")
|
||||||
|
) {
|
||||||
|
process.argv = process.argv.slice(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( process.argv.length > 0 && (
|
||||||
|
process.argv[0].includes("--trace-warnings") ||
|
||||||
|
process.argv[0].includes("--start-as")
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
process.argv = process.argv.slice(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( process.argv.length > 0 && (
|
||||||
|
process.argv[0].includes("--trace-warnings") ||
|
||||||
|
process.argv[0].includes("--start-as")
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
process.argv = process.argv.slice(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
args = process.argv;
|
||||||
|
args.forEach((val, index, array) => {
|
||||||
|
console.log(index + ': ' + val);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log("\n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadArgs = () => {
|
||||||
|
loadKWArgs();
|
||||||
|
loadVArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const getArgs = () => {
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStartType = () => {
|
||||||
|
return startType;
|
||||||
|
}
|
||||||
|
|
||||||
|
const debugMode = () => {
|
||||||
|
return isDebug;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
argsParser: {
|
||||||
|
loadArgs: loadArgs,
|
||||||
|
getArgs: getArgs,
|
||||||
|
getStartType: getStartType,
|
||||||
|
debugMode: debugMode,
|
||||||
|
}
|
||||||
|
};
|
@ -9,37 +9,6 @@ const { newton } = require('./app');
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
let startType = "";
|
|
||||||
let isDebug = false;
|
|
||||||
let args = [];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const loadArgs = () => {
|
|
||||||
console.log("\n\nStart KArgs:");
|
|
||||||
const hasStartAs = app.commandLine.hasSwitch("start-as");
|
|
||||||
if (hasStartAs) {
|
|
||||||
startType = app.commandLine.getSwitchValue("start-as");
|
|
||||||
console.log("Has start-as switch...");
|
|
||||||
console.log(startType);
|
|
||||||
}
|
|
||||||
|
|
||||||
const hasDebug = app.commandLine.hasSwitch("app-debug");
|
|
||||||
if (hasDebug) {
|
|
||||||
isDebug = app.commandLine.getSwitchValue("app-debug");
|
|
||||||
console.log("Has app-debug switch...");
|
|
||||||
console.log(isDebug);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("\n\nStart VArgs:");
|
|
||||||
args = process.argv.slice(4); // remove up to --start-as ...
|
|
||||||
args.forEach((val, index, array) => {
|
|
||||||
console.log(index + ': ' + val);
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log("\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
const loadHandlers = () => {
|
const loadHandlers = () => {
|
||||||
ipcMain.handle('getLspConfigData', (eve) => newton.fs.getLspConfigData());
|
ipcMain.handle('getLspConfigData', (eve) => newton.fs.getLspConfigData());
|
||||||
ipcMain.handle('getFileContents', (eve, file) => newton.fs.getFileContents(file));
|
ipcMain.handle('getFileContents', (eve, file) => newton.fs.getFileContents(file));
|
||||||
@ -50,17 +19,25 @@ const loadHandlers = () => {
|
|||||||
|
|
||||||
|
|
||||||
app.whenReady().then(() => {
|
app.whenReady().then(() => {
|
||||||
loadArgs();
|
newton.args.loadArgs();
|
||||||
loadHandlers();
|
loadHandlers();
|
||||||
|
|
||||||
newton.settings.loadsettings();
|
newton.settings.loadsettings();
|
||||||
let window = newton.createWindow(startType, isDebug, args);
|
let window = newton.createWindow(
|
||||||
|
newton.args.getStartType(),
|
||||||
|
newton.args.debugMode(),
|
||||||
|
newton.args.getArgs(),
|
||||||
|
);
|
||||||
newton.fs.setWindow(window);
|
newton.fs.setWindow(window);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.on('activate', () => {
|
app.on('activate', () => {
|
||||||
if (BrowserWindow.getAllWindows().length === 0) {
|
if (BrowserWindow.getAllWindows().length === 0) {
|
||||||
newton.createWindow(startType, isDebug, args);
|
newton.createWindow(
|
||||||
|
newton.args.getStartType(),
|
||||||
|
newton.args.debugMode(),
|
||||||
|
newton.args.getArgs(),
|
||||||
|
);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user