Skip to content

Commit

Permalink
Plugin respects target set in the config (#167)
Browse files Browse the repository at this point in the history
* plugin respects target set in the config

* Param doc, variable renamed for clarity
  • Loading branch information
Razz4780 authored Feb 4, 2025
1 parent cc1c997 commit 5d9d469
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
1 change: 1 addition & 0 deletions changelog.d/+target-selection.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed a bug where mirrord was not respecting target selected in the mirrord config.
12 changes: 8 additions & 4 deletions src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -370,8 +370,12 @@ export class MirrordAPI {
* setting env vars, both from system, and from `launch.json` (`configEnv`).
*
* Has 60 seconds timeout
*
* @param quickPickSelection target selected by the user from the quick pick widget.
* `undefined` if we found the target in the config,
* and the widget was not shown.
*/
async binaryExecute(target: UserSelection, configFile: string | null, executable: string | null, configEnv: EnvVars): Promise<MirrordExecution> {
async binaryExecute(quickPickSelection: UserSelection | undefined, configFile: string | null, executable: string | null, configEnv: EnvVars): Promise<MirrordExecution> {
tickMirrordForTeamsCounter();
tickFeedbackCounter();
tickDiscordCounter();
Expand All @@ -387,11 +391,11 @@ export class MirrordAPI {
reject("timeout");
}, 120 * 1000);

const args = makeMirrordArgs(target.path ?? "targetless", configFile, executable);
const args = makeMirrordArgs(quickPickSelection?.path, configFile, executable);
let env: EnvVars;
if (target.namespace) {
if (quickPickSelection?.namespace) {
// eslint-disable-next-line @typescript-eslint/naming-convention
env = { MIRRORD_TARGET_NAMESPACE: target.namespace, ...configEnv };
env = { MIRRORD_TARGET_NAMESPACE: quickPickSelection.namespace, ...configEnv };
} else {
env = configEnv;
}
Expand Down
6 changes: 3 additions & 3 deletions src/debugger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ async function main(
let mirrordApi = new MirrordAPI(cliPath);

config.env ||= {};
let target: UserSelection = {};
let quickPickSelection: UserSelection | undefined = undefined;

let configPath = await MirrordConfigManager.getInstance().resolveMirrordConfig(folder, config);
const verifiedConfig = await mirrordApi.verifyConfig(configPath, config.env);
Expand All @@ -123,7 +123,7 @@ async function main(

try {
const quickPick = await TargetQuickPick.new(getTargets);
target = await quickPick.showAndGet();
quickPickSelection = await quickPick.showAndGet();
} catch (err) {
mirrordFailure(`mirrord failed to list targets: ${err}`);
return null;
Expand Down Expand Up @@ -152,7 +152,7 @@ async function main(

let executionInfo;
try {
executionInfo = await mirrordApi.binaryExecute(target, configPath?.path || null, executable, config.env);
executionInfo = await mirrordApi.binaryExecute(quickPickSelection, configPath?.path || null, executable, config.env);
} catch (err) {
mirrordFailure(`mirrord preparation failed: ${err}`);
return null;
Expand Down
9 changes: 4 additions & 5 deletions src/targetQuickPick.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ const TARGET_SELECTION_PAGES: (TargetQuickPickPage & {targetType: string})[] = [
* An item in the @see TargetQuickPick.
*/
type TargetQuickPickItem = vscode.QuickPickItem & (
{ type: 'target', value?: string } | // select target
{ type: 'target', value: string } | // select target
{ type: 'namespace', value: string } | // switch to another namespace
{ type: 'page', value: TargetQuickPickPage } // switch to another page (e.g select pod -> select deployment)
);
Expand All @@ -62,6 +62,7 @@ type TargetQuickPickItem = vscode.QuickPickItem & (
const TARGETLESS_ITEM: TargetQuickPickItem = {
type: 'target',
label: 'No Target (\"targetless\")',
value: 'targetless',
};

/**
Expand All @@ -75,10 +76,8 @@ export type TargetFetcher = (namespace?: string) => Thenable<MirrordLsOutput>;
export type UserSelection = {
/**
* Selected target.
*
* undefined if targetless.
*/
path?: string,
path: string,
/**
* Selected namespace.
*
Expand Down Expand Up @@ -313,7 +312,7 @@ export class TargetQuickPick {
.withDisableAction("promptTargetless")
.info();

return { namespace: this.lsOutput.current_namespace };
return { path: 'targetless', namespace: this.lsOutput.current_namespace };
}
}
}
Expand Down

0 comments on commit 5d9d469

Please sign in to comment.