mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* 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>
43 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|