mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
mark Lens as handling lens:// URIs, log when it happens
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
fc20b22bb5
commit
24b5352614
2
electron-builder.yml
Normal file
2
electron-builder.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileAssociations:
|
||||||
|
- lens
|
||||||
@ -23,9 +23,9 @@
|
|||||||
"compile:i18n": "yarn run lingui compile",
|
"compile:i18n": "yarn run lingui compile",
|
||||||
"compile:extension-types": "yarn run webpack --config webpack.extensions.ts",
|
"compile:extension-types": "yarn run webpack --config webpack.extensions.ts",
|
||||||
"npm:fix-package-version": "yarn run ts-node build/set_npm_version.ts",
|
"npm:fix-package-version": "yarn run ts-node build/set_npm_version.ts",
|
||||||
"build:linux": "yarn run compile && electron-builder --linux --dir -c.productName=Lens",
|
"build:linux": "yarn run compile && electron-builder --linux --config electron-builder.yml --dir -c.productName=Lens",
|
||||||
"build:mac": "yarn run compile && electron-builder --mac --dir -c.productName=Lens",
|
"build:mac": "yarn run compile && electron-builder --mac --config electron-builder.yml --dir -c.productName=Lens",
|
||||||
"build:win": "yarn run compile && electron-builder --win --dir -c.productName=Lens",
|
"build:win": "yarn run compile && electron-builder --win --config electron-builder.yml --dir -c.productName=Lens",
|
||||||
"test": "jest --env=jsdom src $@",
|
"test": "jest --env=jsdom src $@",
|
||||||
"integration": "jest --coverage integration $@",
|
"integration": "jest --coverage integration $@",
|
||||||
"dist": "yarn run compile && electron-builder --publish onTag",
|
"dist": "yarn run compile && electron-builder --publish onTag",
|
||||||
|
|||||||
@ -34,6 +34,7 @@ let clusterManager: ClusterManager;
|
|||||||
let windowManager: WindowManager;
|
let windowManager: WindowManager;
|
||||||
|
|
||||||
app.setName(appName);
|
app.setName(appName);
|
||||||
|
app.setAsDefaultProtocolClient("lens");
|
||||||
|
|
||||||
if (!process.env.CICD) {
|
if (!process.env.CICD) {
|
||||||
app.setPath("userData", workingDir);
|
app.setPath("userData", workingDir);
|
||||||
@ -45,89 +46,90 @@ if (app.commandLine.getSwitchValue("proxy-server") !== "") {
|
|||||||
process.env.HTTPS_PROXY = app.commandLine.getSwitchValue("proxy-server");
|
process.env.HTTPS_PROXY = app.commandLine.getSwitchValue("proxy-server");
|
||||||
}
|
}
|
||||||
|
|
||||||
app.on("ready", async () => {
|
app
|
||||||
logger.info(`🚀 Starting Lens from "${workingDir}"`);
|
.on("ready", async () => {
|
||||||
await shellSync();
|
logger.info(`🚀 Starting Lens from "${workingDir}"`);
|
||||||
|
await shellSync();
|
||||||
|
|
||||||
const updater = new AppUpdater();
|
(new AppUpdater()).start();
|
||||||
|
|
||||||
updater.start();
|
registerFileProtocol("static", __static);
|
||||||
|
|
||||||
registerFileProtocol("static", __static);
|
await installDeveloperTools();
|
||||||
|
|
||||||
await installDeveloperTools();
|
// preload
|
||||||
|
await Promise.all([
|
||||||
|
userStore.load(),
|
||||||
|
clusterStore.load(),
|
||||||
|
workspaceStore.load(),
|
||||||
|
extensionsStore.load(),
|
||||||
|
filesystemProvisionerStore.load(),
|
||||||
|
]);
|
||||||
|
|
||||||
// preload
|
// find free port
|
||||||
await Promise.all([
|
try {
|
||||||
userStore.load(),
|
proxyPort = await getFreePort();
|
||||||
clusterStore.load(),
|
} catch (error) {
|
||||||
workspaceStore.load(),
|
logger.error(error);
|
||||||
extensionsStore.load(),
|
dialog.showErrorBox("Lens Error", "Could not find a free port for the cluster proxy");
|
||||||
filesystemProvisionerStore.load(),
|
app.exit();
|
||||||
]);
|
}
|
||||||
|
|
||||||
// find free port
|
// create cluster manager
|
||||||
try {
|
clusterManager = ClusterManager.getInstance<ClusterManager>(proxyPort);
|
||||||
proxyPort = await getFreePort();
|
|
||||||
} catch (error) {
|
|
||||||
logger.error(error);
|
|
||||||
dialog.showErrorBox("Lens Error", "Could not find a free port for the cluster proxy");
|
|
||||||
app.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
// create cluster manager
|
// run proxy
|
||||||
clusterManager = ClusterManager.getInstance<ClusterManager>(proxyPort);
|
try {
|
||||||
|
|
||||||
// run proxy
|
|
||||||
try {
|
|
||||||
// eslint-disable-next-line unused-imports/no-unused-vars-ts
|
// eslint-disable-next-line unused-imports/no-unused-vars-ts
|
||||||
proxyServer = LensProxy.create(proxyPort, clusterManager);
|
proxyServer = LensProxy.create(proxyPort, clusterManager);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(`Could not start proxy (127.0.0:${proxyPort}): ${error.message}`);
|
logger.error(`Could not start proxy (127.0.0:${proxyPort}): ${error.message}`);
|
||||||
dialog.showErrorBox("Lens Error", `Could not start proxy (127.0.0:${proxyPort}): ${error.message || "unknown error"}`);
|
dialog.showErrorBox("Lens Error", `Could not start proxy (127.0.0:${proxyPort}): ${error.message || "unknown error"}`);
|
||||||
app.exit();
|
app.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
extensionLoader.init();
|
extensionLoader.init();
|
||||||
|
|
||||||
extensionDiscovery.init();
|
extensionDiscovery.init();
|
||||||
windowManager = WindowManager.getInstance<WindowManager>(proxyPort);
|
windowManager = WindowManager.getInstance<WindowManager>(proxyPort);
|
||||||
|
|
||||||
// call after windowManager to see splash earlier
|
// call after windowManager to see splash earlier
|
||||||
const extensions = await extensionDiscovery.load();
|
const extensions = await extensionDiscovery.load();
|
||||||
|
|
||||||
// Subscribe to extensions that are copied or deleted to/from the extensions folder
|
// Subscribe to extensions that are copied or deleted to/from the extensions folder
|
||||||
extensionDiscovery.events.on("add", (extension: InstalledExtension) => {
|
extensionDiscovery.events.on("add", (extension: InstalledExtension) => {
|
||||||
extensionLoader.addExtension(extension);
|
extensionLoader.addExtension(extension);
|
||||||
|
});
|
||||||
|
extensionDiscovery.events.on("remove", (lensExtensionId: LensExtensionId) => {
|
||||||
|
extensionLoader.removeExtension(lensExtensionId);
|
||||||
|
});
|
||||||
|
|
||||||
|
extensionLoader.initExtensions(extensions);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
appEventBus.emit({ name: "service", action: "start" });
|
||||||
|
}, 1000);
|
||||||
|
})
|
||||||
|
.on("activate", (event, hasVisibleWindows) => {
|
||||||
|
logger.info("APP:ACTIVATE", { hasVisibleWindows });
|
||||||
|
|
||||||
|
if (!hasVisibleWindows) {
|
||||||
|
windowManager?.initMainWindow(false);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.on("will-quit", (event) => { // Quit app on Cmd+Q (MacOS)
|
||||||
|
logger.info("APP:QUIT");
|
||||||
|
appEventBus.emit({name: "app", action: "close"});
|
||||||
|
event.preventDefault(); // prevent app's default shutdown (e.g. required for telemetry, etc.)
|
||||||
|
clusterManager?.stop(); // close cluster connections
|
||||||
|
|
||||||
|
return; // skip exit to make tray work, to quit go to app's global menu or tray's menu
|
||||||
|
})
|
||||||
|
.on("open-url", (event, url) => {
|
||||||
|
// protocol handler for macOS
|
||||||
|
logger.info("open-url", { url });
|
||||||
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
extensionDiscovery.events.on("remove", (lensExtensionId: LensExtensionId) => {
|
|
||||||
extensionLoader.removeExtension(lensExtensionId);
|
|
||||||
});
|
|
||||||
|
|
||||||
extensionLoader.initExtensions(extensions);
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
appEventBus.emit({ name: "service", action: "start" });
|
|
||||||
}, 1000);
|
|
||||||
});
|
|
||||||
|
|
||||||
app.on("activate", (event, hasVisibleWindows) => {
|
|
||||||
logger.info("APP:ACTIVATE", { hasVisibleWindows });
|
|
||||||
|
|
||||||
if (!hasVisibleWindows) {
|
|
||||||
windowManager?.initMainWindow(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Quit app on Cmd+Q (MacOS)
|
|
||||||
app.on("will-quit", (event) => {
|
|
||||||
logger.info("APP:QUIT");
|
|
||||||
appEventBus.emit({name: "app", action: "close"});
|
|
||||||
event.preventDefault(); // prevent app's default shutdown (e.g. required for telemetry, etc.)
|
|
||||||
clusterManager?.stop(); // close cluster connections
|
|
||||||
|
|
||||||
return; // skip exit to make tray work, to quit go to app's global menu or tray's menu
|
|
||||||
});
|
|
||||||
|
|
||||||
// Extensions-api runtime exports
|
// Extensions-api runtime exports
|
||||||
export const LensExtensionsApi = {
|
export const LensExtensionsApi = {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user