@phystack/cli 4.4.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +19 -0
- package/README.md +24 -0
- package/bin/index.js +2 -0
- package/dist/commands/app/build-apps.js +66 -0
- package/dist/commands/app/build-apps.js.map +1 -0
- package/dist/commands/app/build-container-remote.js +171 -0
- package/dist/commands/app/build-container-remote.js.map +1 -0
- package/dist/commands/app/build-container.js +322 -0
- package/dist/commands/app/build-container.js.map +1 -0
- package/dist/commands/app/build.js +375 -0
- package/dist/commands/app/build.js.map +1 -0
- package/dist/commands/app/create.js +409 -0
- package/dist/commands/app/create.js.map +1 -0
- package/dist/commands/app/deploy.js +176 -0
- package/dist/commands/app/deploy.js.map +1 -0
- package/dist/commands/app/device-picker.js +150 -0
- package/dist/commands/app/device-picker.js.map +1 -0
- package/dist/commands/app/import.js +303 -0
- package/dist/commands/app/import.js.map +1 -0
- package/dist/commands/app/list.js +26 -0
- package/dist/commands/app/list.js.map +1 -0
- package/dist/commands/app/publish.js +327 -0
- package/dist/commands/app/publish.js.map +1 -0
- package/dist/commands/app/settings.js +129 -0
- package/dist/commands/app/settings.js.map +1 -0
- package/dist/commands/app/types.js +13 -0
- package/dist/commands/app/types.js.map +1 -0
- package/dist/commands/app/upload-description.js +139 -0
- package/dist/commands/app/upload-description.js.map +1 -0
- package/dist/commands/app/upload-settings.js +29 -0
- package/dist/commands/app/upload-settings.js.map +1 -0
- package/dist/commands/app/utils.js +86 -0
- package/dist/commands/app/utils.js.map +1 -0
- package/dist/commands/auth/login.js +111 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.js +19 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/descriptor/create.js +143 -0
- package/dist/commands/descriptor/create.js.map +1 -0
- package/dist/commands/descriptor/index.js +36 -0
- package/dist/commands/descriptor/index.js.map +1 -0
- package/dist/commands/descriptor/publish.js +163 -0
- package/dist/commands/descriptor/publish.js.map +1 -0
- package/dist/commands/descriptor/show.js +68 -0
- package/dist/commands/descriptor/show.js.map +1 -0
- package/dist/commands/dev/develop.js +175 -0
- package/dist/commands/dev/develop.js.map +1 -0
- package/dist/commands/dev/forward.js +118 -0
- package/dist/commands/dev/forward.js.map +1 -0
- package/dist/commands/dev/index.js +66 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/dev/list.js +96 -0
- package/dist/commands/dev/list.js.map +1 -0
- package/dist/commands/dev/screen-devtools.js +156 -0
- package/dist/commands/dev/screen-devtools.js.map +1 -0
- package/dist/commands/dev/select.js +118 -0
- package/dist/commands/dev/select.js.map +1 -0
- package/dist/commands/dev/shell.js +171 -0
- package/dist/commands/dev/shell.js.map +1 -0
- package/dist/commands/dev/vnc.js +75 -0
- package/dist/commands/dev/vnc.js.map +1 -0
- package/dist/commands/device/select.js +118 -0
- package/dist/commands/device/select.js.map +1 -0
- package/dist/commands/flash.js +1120 -0
- package/dist/commands/flash.js.map +1 -0
- package/dist/commands/inst/create.js +55 -0
- package/dist/commands/inst/create.js.map +1 -0
- package/dist/commands/inst/index.js +15 -0
- package/dist/commands/inst/index.js.map +1 -0
- package/dist/commands/inst/list.js +26 -0
- package/dist/commands/inst/list.js.map +1 -0
- package/dist/commands/legacydev/debug.js +11 -0
- package/dist/commands/legacydev/debug.js.map +1 -0
- package/dist/commands/legacydev/deploy.js +15 -0
- package/dist/commands/legacydev/deploy.js.map +1 -0
- package/dist/commands/legacydev/dumpTwin.js +27 -0
- package/dist/commands/legacydev/dumpTwin.js.map +1 -0
- package/dist/commands/legacydev/forward.js +104 -0
- package/dist/commands/legacydev/forward.js.map +1 -0
- package/dist/commands/legacydev/index.js +188 -0
- package/dist/commands/legacydev/index.js.map +1 -0
- package/dist/commands/legacydev/invoke.js +29 -0
- package/dist/commands/legacydev/invoke.js.map +1 -0
- package/dist/commands/legacydev/js.js +69 -0
- package/dist/commands/legacydev/js.js.map +1 -0
- package/dist/commands/legacydev/list.js +196 -0
- package/dist/commands/legacydev/list.js.map +1 -0
- package/dist/commands/legacydev/logs.js +60 -0
- package/dist/commands/legacydev/logs.js.map +1 -0
- package/dist/commands/legacydev/modules.js +50 -0
- package/dist/commands/legacydev/modules.js.map +1 -0
- package/dist/commands/legacydev/move.js +23 -0
- package/dist/commands/legacydev/move.js.map +1 -0
- package/dist/commands/legacydev/ota.js +88 -0
- package/dist/commands/legacydev/ota.js.map +1 -0
- package/dist/commands/legacydev/patchTwin.js +21 -0
- package/dist/commands/legacydev/patchTwin.js.map +1 -0
- package/dist/commands/legacydev/pin.js +23 -0
- package/dist/commands/legacydev/pin.js.map +1 -0
- package/dist/commands/legacydev/pub.js +25 -0
- package/dist/commands/legacydev/pub.js.map +1 -0
- package/dist/commands/legacydev/rdp.js +64 -0
- package/dist/commands/legacydev/rdp.js.map +1 -0
- package/dist/commands/legacydev/screen-devtools.js +142 -0
- package/dist/commands/legacydev/screen-devtools.js.map +1 -0
- package/dist/commands/legacydev/settingsShow.js +89 -0
- package/dist/commands/legacydev/settingsShow.js.map +1 -0
- package/dist/commands/legacydev/settingsUpdate.js +114 -0
- package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
- package/dist/commands/legacydev/shell.js +167 -0
- package/dist/commands/legacydev/shell.js.map +1 -0
- package/dist/commands/legacydev/showTwin.js +9 -0
- package/dist/commands/legacydev/showTwin.js.map +1 -0
- package/dist/commands/legacydev/statusLog.js +56 -0
- package/dist/commands/legacydev/statusLog.js.map +1 -0
- package/dist/commands/legacydev/sub.js +39 -0
- package/dist/commands/legacydev/sub.js.map +1 -0
- package/dist/commands/legacydev/vnc.js +61 -0
- package/dist/commands/legacydev/vnc.js.map +1 -0
- package/dist/commands/tenant/index.js +21 -0
- package/dist/commands/tenant/index.js.map +1 -0
- package/dist/commands/tenant/list.js +14 -0
- package/dist/commands/tenant/list.js.map +1 -0
- package/dist/commands/tenant/select.js +87 -0
- package/dist/commands/tenant/select.js.map +1 -0
- package/dist/commands/vm/create.js +718 -0
- package/dist/commands/vm/create.js.map +1 -0
- package/dist/commands/vm/index.js +130 -0
- package/dist/commands/vm/index.js.map +1 -0
- package/dist/commands/vm/list.js +124 -0
- package/dist/commands/vm/list.js.map +1 -0
- package/dist/commands/vm/logs.js +66 -0
- package/dist/commands/vm/logs.js.map +1 -0
- package/dist/commands/vm/remove.js +180 -0
- package/dist/commands/vm/remove.js.map +1 -0
- package/dist/commands/vm/shell.js +400 -0
- package/dist/commands/vm/shell.js.map +1 -0
- package/dist/commands/vm/start.js +861 -0
- package/dist/commands/vm/start.js.map +1 -0
- package/dist/commands/vm/stop.js +232 -0
- package/dist/commands/vm/stop.js.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/services/admin-api/admin-api.types.js +3 -0
- package/dist/services/admin-api/admin-api.types.js.map +1 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
- package/dist/services/admin-api/devices-admin-api.service.js +213 -0
- package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/index.js +157 -0
- package/dist/services/admin-api/index.js.map +1 -0
- package/dist/services/admin-api/installations-admin-api.service.js +29 -0
- package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
- package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
- package/dist/services/auth/device-grant-auth.service.js +224 -0
- package/dist/services/auth/device-grant-auth.service.js.map +1 -0
- package/dist/services/phyhub/index.js +200 -0
- package/dist/services/phyhub/index.js.map +1 -0
- package/dist/services/phyhub/phyhub.types.js +3 -0
- package/dist/services/phyhub/phyhub.types.js.map +1 -0
- package/dist/utils/device-fetcher.js +92 -0
- package/dist/utils/device-fetcher.js.map +1 -0
- package/dist/utils/devices.js +41 -0
- package/dist/utils/devices.js.map +1 -0
- package/dist/utils/docker-credentials.js +546 -0
- package/dist/utils/docker-credentials.js.map +1 -0
- package/dist/utils/emulated-device.js +91 -0
- package/dist/utils/emulated-device.js.map +1 -0
- package/dist/utils/index.js +180 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/modules.js +36 -0
- package/dist/utils/modules.js.map +1 -0
- package/dist/utils/org-selector.js +108 -0
- package/dist/utils/org-selector.js.map +1 -0
- package/dist/utils/proxy.js +31 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/registry-credentials.js +113 -0
- package/dist/utils/registry-credentials.js.map +1 -0
- package/dist/utils/statuses.js +124 -0
- package/dist/utils/statuses.js.map +1 -0
- package/dist/utils/templates.js +189 -0
- package/dist/utils/templates.js.map +1 -0
- package/dist/utils/tenant-storage.js +88 -0
- package/dist/utils/tenant-storage.js.map +1 -0
- package/dist/utils/vm.js +434 -0
- package/dist/utils/vm.js.map +1 -0
- package/dist/utils/with-spinner.js +20 -0
- package/dist/utils/with-spinner.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renderColorStatusLog = exports.renderColorStatuses = exports.renderStatusLog = exports.applyUnderscores = exports.statusColors = exports.letters = exports.codes = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
exports.codes = {
|
|
9
|
+
'-': 'offline',
|
|
10
|
+
'+': 'ok',
|
|
11
|
+
a: 'noagent',
|
|
12
|
+
e: 'noedge',
|
|
13
|
+
S: 'noshot',
|
|
14
|
+
s: 'noscreen',
|
|
15
|
+
h: 'nohub',
|
|
16
|
+
r: 'noreboot',
|
|
17
|
+
u: 'updating',
|
|
18
|
+
b: 'backoff',
|
|
19
|
+
m: 'mnok',
|
|
20
|
+
};
|
|
21
|
+
exports.letters = Object.entries(exports.codes).reduce((res, [n, v]) => ({ ...res, [v]: n }), {});
|
|
22
|
+
exports.statusColors = {
|
|
23
|
+
unknown: chalk_1.default.hidden,
|
|
24
|
+
ok: chalk_1.default.greenBright,
|
|
25
|
+
offline: chalk_1.default.gray,
|
|
26
|
+
noedge: chalk_1.default.red,
|
|
27
|
+
nohub: chalk_1.default.red,
|
|
28
|
+
noscreen: chalk_1.default.magenta,
|
|
29
|
+
noagent: chalk_1.default.redBright,
|
|
30
|
+
noshot: chalk_1.default.yellow,
|
|
31
|
+
noreboot: chalk_1.default.cyan,
|
|
32
|
+
updating: chalk_1.default.blue,
|
|
33
|
+
backoff: chalk_1.default.magentaBright,
|
|
34
|
+
mnok: chalk_1.default.magentaBright,
|
|
35
|
+
};
|
|
36
|
+
const applyUnderscores = (data) => {
|
|
37
|
+
const result = [];
|
|
38
|
+
let val = data.shift();
|
|
39
|
+
result.push(val);
|
|
40
|
+
while (data.length) {
|
|
41
|
+
const d = data.shift();
|
|
42
|
+
if (d !== '_')
|
|
43
|
+
val = d;
|
|
44
|
+
result.push(val);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
exports.applyUnderscores = applyUnderscores;
|
|
49
|
+
const MIN5 = 5 * 60 * 1000;
|
|
50
|
+
const applyUpdateTime = (log, updateTime) => {
|
|
51
|
+
// filter out some garbage data
|
|
52
|
+
let d = log
|
|
53
|
+
.replace(/_.([a-zA-Z+-])_/g, '__$1_') // remove 2 consequental state changes
|
|
54
|
+
.replace(/_..([a-zA-Z+-])_/g, '___$1_'); // remove 3 consequental state changes
|
|
55
|
+
while (/([a-zA-Z+-])_+\1/g.test(d)) {
|
|
56
|
+
// remove entries where state did not change
|
|
57
|
+
d = d.replace(/([a-zA-Z+-])(_+)\1/g, '$1$2_');
|
|
58
|
+
}
|
|
59
|
+
const d2 = d.split('');
|
|
60
|
+
let t = new Date(updateTime).getTime();
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
while (now - t > MIN5) {
|
|
63
|
+
t += MIN5;
|
|
64
|
+
d2.push('_');
|
|
65
|
+
const item = d2.shift();
|
|
66
|
+
if (item && d2[0] === '_')
|
|
67
|
+
d2[0] = item;
|
|
68
|
+
}
|
|
69
|
+
return d2;
|
|
70
|
+
};
|
|
71
|
+
const FILL_SQ = '\u2587';
|
|
72
|
+
const renderStatusLog = ({ log, updateTime, }) => {
|
|
73
|
+
if (!log || !updateTime)
|
|
74
|
+
return null;
|
|
75
|
+
let data = applyUpdateTime(log, updateTime);
|
|
76
|
+
const res = [];
|
|
77
|
+
data = (0, exports.applyUnderscores)(data);
|
|
78
|
+
while (data.length) {
|
|
79
|
+
data.shift();
|
|
80
|
+
data.shift();
|
|
81
|
+
data.shift();
|
|
82
|
+
const b = data.shift(); // only render every 4th characted, making 20mins granularity
|
|
83
|
+
res.push(b);
|
|
84
|
+
}
|
|
85
|
+
return res.join('');
|
|
86
|
+
};
|
|
87
|
+
exports.renderStatusLog = renderStatusLog;
|
|
88
|
+
const renderColorStatuses = (log, offset = 0) => {
|
|
89
|
+
const res = [];
|
|
90
|
+
let n = 0;
|
|
91
|
+
while (log.length) {
|
|
92
|
+
n += 1;
|
|
93
|
+
const b = log.shift();
|
|
94
|
+
const statusb = exports.codes[b] || 'unknown';
|
|
95
|
+
const colorb = exports.statusColors[statusb] || exports.statusColors.unknown;
|
|
96
|
+
if ((offset + n + 5) % 12 >= 6) {
|
|
97
|
+
res.push(colorb(FILL_SQ));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
res.push(chalk_1.default.dim(colorb(FILL_SQ)));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return res.join('');
|
|
104
|
+
};
|
|
105
|
+
exports.renderColorStatuses = renderColorStatuses;
|
|
106
|
+
const now = new Date();
|
|
107
|
+
const nowMinutes = now.getHours() * 60 + now.getMinutes();
|
|
108
|
+
const renderColorStatusLog = ({ log, updateTime, }) => {
|
|
109
|
+
if (!log || !updateTime)
|
|
110
|
+
return null;
|
|
111
|
+
let data = applyUpdateTime(log, updateTime);
|
|
112
|
+
const off = Math.floor(nowMinutes / 20);
|
|
113
|
+
data = (0, exports.applyUnderscores)(data);
|
|
114
|
+
const min20log = [];
|
|
115
|
+
while (data.length) {
|
|
116
|
+
data.shift();
|
|
117
|
+
data.shift();
|
|
118
|
+
data.shift();
|
|
119
|
+
min20log.push(data.shift()); // only render every 4th entry, making 20mins granularity
|
|
120
|
+
}
|
|
121
|
+
return (0, exports.renderColorStatuses)(min20log, off);
|
|
122
|
+
};
|
|
123
|
+
exports.renderColorStatusLog = renderColorStatusLog;
|
|
124
|
+
//# sourceMappingURL=statuses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statuses.js","sourceRoot":"","sources":["../../src/utils/statuses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.initRepo = exports.installRepo = exports.cloneRepo = void 0;
|
|
40
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const child_process_1 = __importStar(require("child_process"));
|
|
44
|
+
const rimraf_1 = require("rimraf");
|
|
45
|
+
const with_spinner_1 = __importDefault(require("./with-spinner"));
|
|
46
|
+
const cloneRepo = async ({ destinationPath, repo, projectName, displayName, registry, type, imageName, }) => {
|
|
47
|
+
const isExisting = await (0, with_spinner_1.default)(() => fs_extra_1.default.pathExists(destinationPath), 'Checking if the directory exists');
|
|
48
|
+
if (isExisting) {
|
|
49
|
+
throw new Error(`${destinationPath} already exists`);
|
|
50
|
+
}
|
|
51
|
+
let inMonorepo = false;
|
|
52
|
+
try {
|
|
53
|
+
child_process_1.default.execSync('git remote 2> /dev/null');
|
|
54
|
+
inMonorepo = true;
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
inMonorepo = false;
|
|
58
|
+
}
|
|
59
|
+
await (0, with_spinner_1.default)(() => new Promise((resolve) => child_process_1.default.exec(`git clone ${repo} ${destinationPath}`, {}, resolve)), 'Cloning template app');
|
|
60
|
+
await (0, with_spinner_1.default)(() => rimraf_1.rimraf.rimraf(path_1.default.join(destinationPath, '.git'), {}), 'Removing template .git config');
|
|
61
|
+
if (!inMonorepo) {
|
|
62
|
+
await (0, with_spinner_1.default)(() => new Promise((resolve) => child_process_1.default.exec('git init', { cwd: destinationPath }, resolve)), 'Initializing git repo');
|
|
63
|
+
}
|
|
64
|
+
// Immediately update package.json with the proper app name, version, and description.
|
|
65
|
+
const packageFile = path_1.default.join(destinationPath, 'package.json');
|
|
66
|
+
if (await fs_extra_1.default.pathExists(packageFile)) {
|
|
67
|
+
console.log(chalk_1.default.gray('Updating package.json with app name, version, and description'));
|
|
68
|
+
const data = await fs_extra_1.default.promises.readFile(packageFile);
|
|
69
|
+
const parsed = JSON.parse(data.toString());
|
|
70
|
+
parsed.name = projectName; // The name must be in the "<org>.<appName>" format.
|
|
71
|
+
parsed.version = '0.1.0';
|
|
72
|
+
parsed.description = displayName;
|
|
73
|
+
// Only set application-type if type parameter is provided
|
|
74
|
+
if (type) {
|
|
75
|
+
parsed['application-type'] = type;
|
|
76
|
+
}
|
|
77
|
+
// For edge apps, store registry in docker-credentials.registry instead of at the root level
|
|
78
|
+
if (registry && type === 'module') {
|
|
79
|
+
// Initialize docker-credentials if it doesn't exist
|
|
80
|
+
if (!parsed['docker-credentials']) {
|
|
81
|
+
parsed['docker-credentials'] = {
|
|
82
|
+
pull: {
|
|
83
|
+
username: '',
|
|
84
|
+
password: '',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Store registry in docker-credentials.registry
|
|
89
|
+
parsed['docker-credentials'].registry = registry;
|
|
90
|
+
// If imageName is provided, store it in docker-credentials.image
|
|
91
|
+
if (imageName) {
|
|
92
|
+
// Check if registry is already prepended
|
|
93
|
+
const registryPrefix = `${registry}/`;
|
|
94
|
+
if (!imageName.startsWith(registryPrefix)) {
|
|
95
|
+
parsed['docker-credentials'].image = `${registryPrefix}${imageName}`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Use the imageName as is if it already has the correct prefix
|
|
99
|
+
parsed['docker-credentials'].image = imageName;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Remove container-registry from root if it exists
|
|
103
|
+
if (parsed['container-registry']) {
|
|
104
|
+
delete parsed['container-registry'];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (registry) {
|
|
108
|
+
// For non-edge apps, keep the old behavior
|
|
109
|
+
parsed['container-registry'] = registry;
|
|
110
|
+
}
|
|
111
|
+
const newData = JSON.stringify(parsed, null, ' ');
|
|
112
|
+
await fs_extra_1.default.promises.writeFile(packageFile, newData);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.cloneRepo = cloneRepo;
|
|
116
|
+
const installRepo = async ({ destinationPath, projectName, displayName, registry, }) => {
|
|
117
|
+
const packageFile = path_1.default.join(destinationPath, 'package.json');
|
|
118
|
+
if (fs_extra_1.default.existsSync(packageFile)) {
|
|
119
|
+
console.log(chalk_1.default.gray(`Installing packages through yarn install`));
|
|
120
|
+
await new Promise((resolve, reject) => {
|
|
121
|
+
const install = (0, child_process_1.spawn)('yarn', ['install'], {
|
|
122
|
+
cwd: destinationPath,
|
|
123
|
+
stdio: 'inherit',
|
|
124
|
+
shell: true,
|
|
125
|
+
});
|
|
126
|
+
install.on('close', (code) => {
|
|
127
|
+
if (code !== 0) {
|
|
128
|
+
reject(new Error('yarn install failed'));
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
resolve(null);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
try {
|
|
136
|
+
console.log(chalk_1.default.gray(`Running yarn bootstrap to setup the project`));
|
|
137
|
+
child_process_1.default.execSync('yarn bootstrap', { cwd: destinationPath, stdio: 'inherit' });
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
console.log('bootstrap command not found, that is fine');
|
|
141
|
+
}
|
|
142
|
+
// Package.json updating has been moved into cloneRepo.
|
|
143
|
+
console.log(chalk_1.default.gray(`Building project through yarn build`));
|
|
144
|
+
await new Promise((resolve, reject) => {
|
|
145
|
+
const build = (0, child_process_1.spawn)('yarn', ['build'], {
|
|
146
|
+
cwd: destinationPath,
|
|
147
|
+
stdio: 'inherit',
|
|
148
|
+
shell: true,
|
|
149
|
+
env: {
|
|
150
|
+
...process.env,
|
|
151
|
+
FORCE_COLOR: '1',
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
build.on('close', (code) => {
|
|
155
|
+
if (code !== 0) {
|
|
156
|
+
reject(new Error('yarn build failed'));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
resolve(null);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
console.log(chalk_1.default.gray(`No packages required for this project type`));
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
exports.installRepo = installRepo;
|
|
169
|
+
/**
|
|
170
|
+
* For compatibility reasons, this function combines cloneRepo and installRepo.
|
|
171
|
+
* When called, it will first clone the repository (removing the original .git)
|
|
172
|
+
* and update package.json with the correct app name, version and description,
|
|
173
|
+
* then install dependencies and build the project.
|
|
174
|
+
*/
|
|
175
|
+
const initRepo = async ({ destinationPath, repo, projectName, displayName, registry, type, imageName, }) => {
|
|
176
|
+
await (0, exports.cloneRepo)({
|
|
177
|
+
destinationPath,
|
|
178
|
+
repo,
|
|
179
|
+
projectName,
|
|
180
|
+
displayName,
|
|
181
|
+
registry,
|
|
182
|
+
type,
|
|
183
|
+
imageName,
|
|
184
|
+
});
|
|
185
|
+
await (0, exports.installRepo)({ destinationPath, projectName, displayName, registry });
|
|
186
|
+
};
|
|
187
|
+
exports.initRepo = initRepo;
|
|
188
|
+
exports.default = { cloneRepo: exports.cloneRepo, installRepo: exports.installRepo };
|
|
189
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.clearTenant = exports.hasTenant = exports.getTenant = exports.saveTenant = void 0;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.config', 'phygrid-cli');
|
|
12
|
+
const TENANT_FILE = path_1.default.join(CONFIG_DIR, 'tenant.json');
|
|
13
|
+
/**
|
|
14
|
+
* Save tenant information to the config directory
|
|
15
|
+
*
|
|
16
|
+
* @param tenant The tenant information to save
|
|
17
|
+
* @returns Promise that resolves when the save is complete
|
|
18
|
+
*/
|
|
19
|
+
const saveTenant = async (tenant) => {
|
|
20
|
+
try {
|
|
21
|
+
// Ensure config directory exists
|
|
22
|
+
await fs_extra_1.default.ensureDir(CONFIG_DIR);
|
|
23
|
+
// Save the tenant information
|
|
24
|
+
await fs_extra_1.default.writeFile(TENANT_FILE, JSON.stringify(tenant, null, 2));
|
|
25
|
+
console.log(chalk_1.default.dim(`Saved tenant information to ${TENANT_FILE}`));
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error(chalk_1.default.red(`Failed to save tenant information: ${error.message}`));
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.saveTenant = saveTenant;
|
|
33
|
+
/**
|
|
34
|
+
* Get the saved tenant information
|
|
35
|
+
*
|
|
36
|
+
* @returns Promise that resolves to the tenant information or null if none saved
|
|
37
|
+
*/
|
|
38
|
+
const getTenant = async () => {
|
|
39
|
+
try {
|
|
40
|
+
if (await fs_extra_1.default.pathExists(TENANT_FILE)) {
|
|
41
|
+
const data = await fs_extra_1.default.readFile(TENANT_FILE, 'utf8');
|
|
42
|
+
const tenant = JSON.parse(data);
|
|
43
|
+
// Logging loaded tenant info
|
|
44
|
+
console.log(chalk_1.default.dim(`Using tenant: ${tenant.displayName} (${tenant.slug})`));
|
|
45
|
+
return tenant;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
console.error(chalk_1.default.red(`Failed to read tenant information: ${error.message}`));
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.getTenant = getTenant;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a tenant is already saved
|
|
57
|
+
*
|
|
58
|
+
* @returns Promise that resolves to true if a tenant is saved, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
const hasTenant = async () => {
|
|
61
|
+
try {
|
|
62
|
+
return await fs_extra_1.default.pathExists(TENANT_FILE);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error(chalk_1.default.red(`Failed to check for saved tenant: ${error.message}`));
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.hasTenant = hasTenant;
|
|
70
|
+
/**
|
|
71
|
+
* Clear the saved tenant
|
|
72
|
+
*
|
|
73
|
+
* @returns Promise that resolves when the file is deleted
|
|
74
|
+
*/
|
|
75
|
+
const clearTenant = async () => {
|
|
76
|
+
try {
|
|
77
|
+
if (await fs_extra_1.default.pathExists(TENANT_FILE)) {
|
|
78
|
+
await fs_extra_1.default.remove(TENANT_FILE);
|
|
79
|
+
console.log(chalk_1.default.dim(`Removed tenant information`));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(chalk_1.default.red(`Failed to clear tenant: ${error.message}`));
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.clearTenant = clearTenant;
|
|
88
|
+
//# sourceMappingURL=tenant-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-storage.js","sourceRoot":"","sources":["../../src/utils/tenant-storage.ts"],"names":[],"mappings":"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"}
|