1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/main/helm-cli.ts
Jari Kolehmainen 26e97f972b Add kubectl/helm download mirror select to preferences (#185)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Signed-off-by: Cody Belcher <cody.t.belcher@gmail.com>
2020-04-16 11:23:40 -05:00

46 lines
1.3 KiB
TypeScript

import * as path from "path"
import { LensBinary, LensBinaryOpts } from "./lens-binary"
import { userStore } from "../common/user-store"
const helmVersion = "3.1.2"
const packageMirrors: Map<string, string> = new Map([
["default", "https://get.helm.sh"],
["china", "https://mirror.azure.cn/kubernetes/helm"]
])
export class HelmCli extends LensBinary {
public constructor(version: string) {
const opts: LensBinaryOpts = {
version,
originalBinaryName: "helm",
newBinaryName: "helm3"
}
super(opts)
}
protected getTarName(): string|null {
return `${this.binaryName}-v${this.binaryVersion}-${this.platformName}-${this.arch}.tar.gz`
}
protected getUrl() {
return `${this.getDownloadMirror()}/helm-v${this.binaryVersion}-${this.platformName}-${this.arch}.tar.gz`
}
protected getDownloadMirror() {
const mirror = packageMirrors.get(userStore.getPreferences().downloadMirror)
if (mirror) { return mirror }
return packageMirrors.get("default")
}
protected getBinaryPath() {
return path.join(this.dirname, this.platformName+"-"+this.arch, this.binaryName)
}
protected getOriginalBinaryPath() {
return path.join(this.dirname, this.platformName+"-"+this.arch, this.originalBinaryName)
}
}
export const helmCli = new HelmCli(helmVersion)