1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

fix: incorrect path to install/re-install features (#723)

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-08-20 18:27:20 +03:00 committed by GitHub
parent 1cf446ea98
commit 86e1e23ccd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5,6 +5,7 @@ import { ResourceApplier } from "./resource-applier"
import { CoreV1Api, KubeConfig, Watch } from "@kubernetes/client-node" import { CoreV1Api, KubeConfig, Watch } from "@kubernetes/client-node"
import { Cluster } from "./cluster"; import { Cluster } from "./cluster";
import logger from "./logger"; import logger from "./logger";
import { isDevelopment } from "../common/vars";
export type FeatureStatusMap = Record<string, FeatureStatus> export type FeatureStatusMap = Record<string, FeatureStatus>
export type FeatureMap = Record<string, Feature> export type FeatureMap = Record<string, Feature>
@ -23,8 +24,8 @@ export interface FeatureStatus {
} }
export abstract class Feature { export abstract class Feature {
name: string; public name: string;
latestVersion: string; public latestVersion: string;
abstract async upgrade(cluster: Cluster): Promise<void>; abstract async upgrade(cluster: Cluster): Promise<void>;
@ -35,6 +36,13 @@ export abstract class Feature {
constructor(public config: any) { constructor(public config: any) {
} }
get folderPath() {
if (isDevelopment) {
return path.resolve(__static, "../src/features", this.name);
}
return path.resolve(__static, "../features", this.name);
}
async install(cluster: Cluster): Promise<void> { async install(cluster: Cluster): Promise<void> {
const resources = this.renderTemplates(); const resources = this.renderTemplates();
try { try {
@ -70,9 +78,11 @@ export abstract class Feature {
} }
protected renderTemplates(): string[] { protected renderTemplates(): string[] {
const folderPath = this.folderPath;
const resources: string[] = []; const resources: string[] = [];
fs.readdirSync(this.manifestPath()).forEach(filename => { logger.info(`[FEATURE]: render templates from ${folderPath}`);
const file = path.join(this.manifestPath(), filename); fs.readdirSync(folderPath).forEach(filename => {
const file = path.join(folderPath, filename);
const raw = fs.readFileSync(file); const raw = fs.readFileSync(file);
if (filename.endsWith('.hb')) { if (filename.endsWith('.hb')) {
const template = hb.compile(raw.toString()); const template = hb.compile(raw.toString());
@ -84,12 +94,4 @@ export abstract class Feature {
return resources; return resources;
} }
protected manifestPath() {
const devPath = path.join(__dirname, "..", 'src/features', this.name);
if (fs.existsSync(devPath)) {
return devPath;
}
return path.join(__dirname, "..", 'features', this.name);
}
} }