1 | "use strict";
|
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3 | if (k2 === undefined) k2 = k;
|
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5 | }) : (function(o, m, k, k2) {
|
6 | if (k2 === undefined) k2 = k;
|
7 | o[k2] = m[k];
|
8 | }));
|
9 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
10 | Object.defineProperty(o, "default", { enumerable: true, value: v });
|
11 | }) : function(o, v) {
|
12 | o["default"] = v;
|
13 | });
|
14 | var __importStar = (this && this.__importStar) || function (mod) {
|
15 | if (mod && mod.__esModule) return mod;
|
16 | var result = {};
|
17 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
18 | __setModuleDefault(result, mod);
|
19 | return result;
|
20 | };
|
21 | Object.defineProperty(exports, "__esModule", { value: true });
|
22 | exports.loadVdevConfig = void 0;
|
23 | const fs = __importStar(require("fs-extra"));
|
24 | const Path = __importStar(require("path"));
|
25 | const renderer_1 = require("./renderer");
|
26 | const deepmerge = require("deepmerge");
|
27 |
|
28 |
|
29 | const overwriteMerge = (target, source, options) => source;
|
30 |
|
31 | async function loadVdevConfig(rootDir) {
|
32 | var _a, _b;
|
33 | rootDir = rootDir || "./";
|
34 | const vdevFile = Path.join(rootDir, 'vdev.yaml');
|
35 |
|
36 | const packageJson = await fs.readJSON('./package.json');
|
37 | let __version__ = (_a = packageJson.__version__) !== null && _a !== void 0 ? _a : packageJson.version;
|
38 |
|
39 |
|
40 | const data = { __version__ };
|
41 |
|
42 | let vdevObj = await loadVdevFile(vdevFile, true, data);
|
43 |
|
44 |
|
45 | if (vdevObj.vdevFiles) {
|
46 | for (const subRelVdevFile of vdevObj.vdevFiles) {
|
47 | const subVdevFile = Path.join(rootDir, subRelVdevFile);
|
48 | const exists = await fs.pathExists(subVdevFile);
|
49 | if (exists) {
|
50 | console.log(`INFO - Loading extra vdev file: ${subVdevFile}`);
|
51 | try {
|
52 | let subVdevObj = await loadVdevFile(subVdevFile, false, data);
|
53 | vdevObj = deepmerge(vdevObj, subVdevObj, { arrayMerge: overwriteMerge });
|
54 | }
|
55 | catch (ex) {
|
56 | console.log(`ERROR - Cannot load vdev files ${subVdevFile} (skipping file)\n\tCause: ${ex}`);
|
57 | }
|
58 | }
|
59 | }
|
60 | }
|
61 |
|
62 | vdevObj.__version__ = __version__;
|
63 | vdevObj.imageTag = (_b = vdevObj.imageTag) !== null && _b !== void 0 ? _b : 'latest';
|
64 | return vdevObj;
|
65 | }
|
66 | exports.loadVdevConfig = loadVdevConfig;
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 | async function loadVdevFile(vdevFile, base, data) {
|
73 | const vdevRawObj = await renderer_1.loadTemplatizedYaml(vdevFile, data);
|
74 |
|
75 | return vdevRawObj;
|
76 | }
|