1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/main/helm/exec.ts
Jari Kolehmainen db65a89ee0
Electron v15.5.7 (#5562)
* electron v15.5.7

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* change pipelines to use node 16

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* bump @types/node

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* update yarn.lock

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* use fs.ObjectEncodingOptions

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2022-06-08 09:55:17 +03:00

43 lines
1.2 KiB
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { promiseExecFile } from "../../common/utils/promise-exec";
import type { ObjectEncodingOptions } from "fs";
import type { ExecFileOptions, ExecFileOptionsWithStringEncoding } from "child_process";
import { helmBinaryPath } from "../../common/vars";
import { UserStore } from "../../common/user-store";
import { isChildProcessError } from "../../common/utils";
/**
* ExecFile the bundled helm CLI
* @returns STDOUT
*/
export async function execHelm(args: string[], { encoding, ...rest }: ObjectEncodingOptions & ExecFileOptions = {}): Promise<string> {
const options: ExecFileOptionsWithStringEncoding = {
encoding: encoding ?? "utf-8",
...rest,
};
try {
const opts = { ...options };
opts.env ??= { ...process.env };
if (!opts.env.HTTPS_PROXY && UserStore.getInstance().httpsProxy) {
opts.env.HTTPS_PROXY = UserStore.getInstance().httpsProxy;
}
const { stdout } = await promiseExecFile(helmBinaryPath.get(), args, opts);
return stdout;
} catch (error) {
if (isChildProcessError(error, "string")) {
throw error.stderr || error;
}
throw error;
}
}