@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
104 lines • 3.93 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
/**
* SPDX-License-Identifier: Apache-2.0
*/
import * as constants from './constants.js';
import { ShellRunner } from './shell_runner.js';
import { Templates } from './templates.js';
import { inject, injectable } from 'tsyringe-neo';
import { patchInject } from './dependency_injection/container_helper.js';
import { InjectTokens } from './dependency_injection/inject_tokens.js';
let Helm = class Helm extends ShellRunner {
osPlatform;
helmPath;
constructor(osPlatform) {
super();
this.osPlatform = osPlatform;
this.osPlatform = patchInject(osPlatform, InjectTokens.OsPlatform, this.constructor.name);
this.helmPath = Templates.installationPath(constants.HELM, this.osPlatform);
}
/**
* Prepare a `helm` shell command string
* @param action - represents a helm command (e.g. create | install | get )
* @param args - args of the command
*/
prepareCommand(action, ...args) {
let cmd = `${this.helmPath} ${action}`;
args.forEach(arg => {
cmd += ` ${arg}`;
});
return cmd;
}
/**
* Invoke `helm install` command
* @param args - args of the command
* @returns console output as an array of strings
*/
install(...args) {
return this.run(this.prepareCommand('install', ...args), true);
}
/**
* Invoke `helm uninstall` command
* @param args - args of the command
* @returns console output as an array of strings
*/
uninstall(...args) {
return this.run(this.prepareCommand('uninstall', ...args), true);
}
/**
* Invoke `helm upgrade` command
* @param args - args of the command
* @returns console output as an array of strings
*/
upgrade(...args) {
return this.run(this.prepareCommand('upgrade', ...args), true);
}
/**
* Invoke `helm list` command
* @param args - args of the command
* @returns console output as an array of strings
*/
list(...args) {
return this.run(this.prepareCommand('list', ...args));
}
/**
* Invoke `helm dependency` command
* @param subCommand - sub-command
* @param args - args of the command
* @returns console output as an array of strings
*/
dependency(subCommand, ...args) {
return this.run(this.prepareCommand('dependency', subCommand, ...args));
}
/**
* Invoke `helm repo` command
* @param subCommand - sub-command
* @param args - args of the command
* @returns console output as an array of strings
*/
repo(subCommand, ...args) {
return this.run(this.prepareCommand('repo', subCommand, ...args));
}
/** Get helm version */
version(args = ['--short']) {
return this.run(this.prepareCommand('version', ...args));
}
};
Helm = __decorate([
injectable(),
__param(0, inject(InjectTokens.OsPlatform)),
__metadata("design:paramtypes", [String])
], Helm);
export { Helm };
//# sourceMappingURL=helm.js.map