mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
ShellEnv extension api (#4802)
* adding extension api for terminal environment variables Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * modified shell env api to work as a transformer (WIP) Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * address some review comments Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * shell env modifiers now take a CatalogEntity in ShellEnvContext param Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * tweaks and bug fix Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * refactored to remove ShellEnvModifier code from shell-session to local-shell-session Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * further refactoring and documentation Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * added comment Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
This commit is contained in:
1 parent
81e6dc5d8e
commit
9b9b8e0d05
7 files changed
+104
-2
No files matched your search
@@ -11,3 +11,4 @@ export type { PageRegistration, RegisteredPage, PageParams, PageComponentProps,
|
||||
export type { ClusterPageMenuRegistration, ClusterPageMenuComponents } from "../registries/page-menu-registry";
|
||||
export type { ProtocolHandlerRegistration, RouteParams as ProtocolRouteParams, RouteHandler as ProtocolRouteHandler } from "../registries/protocol-handler";
|
||||
export type { CustomCategoryViewProps, CustomCategoryViewComponents, CustomCategoryViewRegistration } from "../../renderer/components/+catalog/custom-views";
|
||||
export type { ShellEnvModifier, ShellEnvContext } from "../../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
|
||||
@@ -10,10 +10,27 @@ import type { CatalogEntity } from "../common/catalog";
|
||||
import type { IObservableArray } from "mobx";
|
||||
import type { MenuRegistration } from "../main/menu/menu-registration";
|
||||
import type { TrayMenuRegistration } from "../main/tray/tray-menu-registration";
|
||||
import type { ShellEnvModifier } from "../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
|
||||
|
||||
export class LensMainExtension extends LensExtension {
|
||||
appMenus: MenuRegistration[] = [];
|
||||
trayMenus: TrayMenuRegistration[] = [];
|
||||
|
||||
/**
|
||||
* implement this to modify the shell environment that Lens terminals are opened with. The ShellEnvModifier type has the signature
|
||||
*
|
||||
* (ctx: ShellEnvContext, env: Record<string, string | undefined>) => Record<string, string | undefined>
|
||||
*
|
||||
* @param ctx the shell environment context, specifically the relevant catalog entity for the terminal. This can be used, for example, to get
|
||||
* cluster-specific information that can be made available in the shell environment by the implementation of terminalShellEnvModifier
|
||||
*
|
||||
* @param env the current shell environment that the terminal will be opened with. The implementation should modify this as desired.
|
||||
*
|
||||
* @returns the modified shell environment that the terminal will be opened with. The implementation must return env as passed in, if it
|
||||
* does not modify the shell environment
|
||||
*/
|
||||
terminalShellEnvModifier?: ShellEnvModifier;
|
||||
|
||||
async navigate(pageId?: string, params?: Record<string, any>, frameId?: number) {
|
||||
return WindowManager.getInstance().navigateExtension(this.id, pageId, params, frameId);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user