@taon-dev/cloud 21.0.213 → 21.0.216
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/VERIFIED-BUILD-DATA.jsonc +3 -3
- package/bin/cloud +5 -0
- package/bin/cloud-debug +5 -0
- package/bin/cloud-debug-brk +4 -0
- package/browser/fesm2022/cloud-browser.mjs +1 -1
- package/browser/fesm2022/cloud-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/cloud-browser.d.ts +1 -1
- package/browser-prod/fesm2022/cloud-browser-prod.mjs +1 -1
- package/browser-prod/fesm2022/cloud-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/cloud-browser-prod.d.ts +1 -1
- package/html/assets/generated/pwa/html-pwa.html +60 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/package.json +1 -1
- package/lib/traefik/traefik.provider.js +1 -1
- package/lib/traefik/traefik.provider.js.map +1 -1
- package/lib-esm/app.d.ts +3 -0
- package/lib-esm/app.electron.d.ts +1 -0
- package/lib-esm/app.electron.js +2 -0
- package/lib-esm/app.electron.js.map +1 -0
- package/lib-esm/app.hosts.d.ts +95 -0
- package/lib-esm/app.hosts.js +157 -0
- package/lib-esm/app.hosts.js.map +1 -0
- package/lib-esm/app.js +460 -0
- package/lib-esm/app.js.map +1 -0
- package/lib-esm/app.vscode.d.ts +9 -0
- package/lib-esm/app.vscode.js +37 -0
- package/lib-esm/app.vscode.js.map +1 -0
- package/lib-esm/cli.d.ts +1 -0
- package/lib-esm/cli.js +4 -0
- package/lib-esm/cli.js.map +1 -0
- package/lib-esm/index.d.ts +1 -0
- package/lib-esm/index.js +2 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
- package/lib-esm/lib/build-info._auto-generated_.js +27 -0
- package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
- package/lib-esm/lib/constants.d.ts +1 -0
- package/lib-esm/lib/constants.js +3 -0
- package/lib-esm/lib/constants.js.map +1 -0
- package/lib-esm/lib/env/env.angular-node-app.d.ts +67 -0
- package/lib-esm/lib/env/env.angular-node-app.js +137 -0
- package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
- package/lib-esm/lib/env/env.docs-webapp.d.ts +67 -0
- package/lib-esm/lib/env/env.docs-webapp.js +137 -0
- package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
- package/lib-esm/lib/env/env.electron-app.d.ts +67 -0
- package/lib-esm/lib/env/env.electron-app.js +137 -0
- package/lib-esm/lib/env/env.electron-app.js.map +1 -0
- package/lib-esm/lib/env/env.mobile-app.d.ts +67 -0
- package/lib-esm/lib/env/env.mobile-app.js +137 -0
- package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +137 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-esm/lib/env/env.vscode-plugin.d.ts +67 -0
- package/lib-esm/lib/env/env.vscode-plugin.js +137 -0
- package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
- package/lib-esm/lib/env/index.d.ts +6 -0
- package/lib-esm/lib/env/index.js +7 -0
- package/lib-esm/lib/env/index.js.map +1 -0
- package/lib-esm/lib/index._auto-generated_.d.ts +25 -0
- package/lib-esm/lib/index._auto-generated_.js +33 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -0
- package/lib-esm/lib/index.d.ts +4 -0
- package/lib-esm/lib/index.js +5 -0
- package/lib-esm/lib/index.js.map +1 -0
- package/lib-esm/lib/instances/index.d.ts +4 -0
- package/lib-esm/lib/instances/index.js +6 -0
- package/lib-esm/lib/instances/index.js.map +1 -0
- package/lib-esm/lib/instances/instances.context.d.ts +19 -0
- package/lib-esm/lib/instances/instances.context.js +64 -0
- package/lib-esm/lib/instances/instances.context.js.map +1 -0
- package/lib-esm/lib/instances/instances.controller.d.ts +10 -0
- package/lib-esm/lib/instances/instances.controller.js +61 -0
- package/lib-esm/lib/instances/instances.controller.js.map +1 -0
- package/lib-esm/lib/instances/instances.d.ts +9 -0
- package/lib-esm/lib/instances/instances.defaults-values.d.ts +2 -0
- package/lib-esm/lib/instances/instances.defaults-values.js +5 -0
- package/lib-esm/lib/instances/instances.defaults-values.js.map +1 -0
- package/lib-esm/lib/instances/instances.js +40 -0
- package/lib-esm/lib/instances/instances.js.map +1 -0
- package/lib-esm/lib/instances/instances.repository.d.ts +6 -0
- package/lib-esm/lib/instances/instances.repository.js +17 -0
- package/lib-esm/lib/instances/instances.repository.js.map +1 -0
- package/lib-esm/lib/instances/instances.terminal-ui.d.ts +11 -0
- package/lib-esm/lib/instances/instances.terminal-ui.js +154 -0
- package/lib-esm/lib/instances/instances.terminal-ui.js.map +1 -0
- package/lib-esm/lib/instances/instances.worker.d.ts +18 -0
- package/lib-esm/lib/instances/instances.worker.js +42 -0
- package/lib-esm/lib/instances/instances.worker.js.map +1 -0
- package/lib-esm/lib/models.d.ts +8 -0
- package/lib-esm/lib/models.js +10 -0
- package/lib-esm/lib/models.js.map +1 -0
- package/lib-esm/lib/my-organization-proj.d.ts +1 -0
- package/lib-esm/lib/my-organization-proj.js +3 -0
- package/lib-esm/lib/my-organization-proj.js.map +1 -0
- package/lib-esm/lib/processes/index.d.ts +4 -0
- package/lib-esm/lib/processes/index.js +6 -0
- package/lib-esm/lib/processes/index.js.map +1 -0
- package/lib-esm/lib/processes/processes.context.d.ts +19 -0
- package/lib-esm/lib/processes/processes.context.js +21 -0
- package/lib-esm/lib/processes/processes.context.js.map +1 -0
- package/lib-esm/lib/processes/processes.controller.d.ts +13 -0
- package/lib-esm/lib/processes/processes.controller.js +168 -0
- package/lib-esm/lib/processes/processes.controller.js.map +1 -0
- package/lib-esm/lib/processes/processes.d.ts +24 -0
- package/lib-esm/lib/processes/processes.defaults-values.d.ts +2 -0
- package/lib-esm/lib/processes/processes.defaults-values.js +6 -0
- package/lib-esm/lib/processes/processes.defaults-values.js.map +1 -0
- package/lib-esm/lib/processes/processes.js +159 -0
- package/lib-esm/lib/processes/processes.js.map +1 -0
- package/lib-esm/lib/processes/processes.models.d.ts +33 -0
- package/lib-esm/lib/processes/processes.models.js +43 -0
- package/lib-esm/lib/processes/processes.models.js.map +1 -0
- package/lib-esm/lib/processes/processes.repository.d.ts +18 -0
- package/lib-esm/lib/processes/processes.repository.js +194 -0
- package/lib-esm/lib/processes/processes.repository.js.map +1 -0
- package/lib-esm/lib/processes/processes.terminal-ui.d.ts +19 -0
- package/lib-esm/lib/processes/processes.terminal-ui.js +378 -0
- package/lib-esm/lib/processes/processes.terminal-ui.js.map +1 -0
- package/lib-esm/lib/processes/processes.utils.d.ts +6 -0
- package/lib-esm/lib/processes/processes.utils.js +83 -0
- package/lib-esm/lib/processes/processes.utils.js.map +1 -0
- package/lib-esm/lib/processes/processes.worker.controller.d.ts +3 -0
- package/lib-esm/lib/processes/processes.worker.controller.js +13 -0
- package/lib-esm/lib/processes/processes.worker.controller.js.map +1 -0
- package/lib-esm/lib/processes/processes.worker.d.ts +18 -0
- package/lib-esm/lib/processes/processes.worker.js +52 -0
- package/lib-esm/lib/processes/processes.worker.js.map +1 -0
- package/lib-esm/lib/start-cli.d.ts +7 -0
- package/lib-esm/lib/start-cli.js +43 -0
- package/lib-esm/lib/start-cli.js.map +1 -0
- package/lib-esm/lib/traefik/traefik.models.d.ts +20 -0
- package/lib-esm/lib/traefik/traefik.models.js +2 -0
- package/lib-esm/lib/traefik/traefik.models.js.map +1 -0
- package/lib-esm/lib/traefik/traefik.provider.d.ts +42 -0
- package/lib-esm/lib/traefik/traefik.provider.js +575 -0
- package/lib-esm/lib/traefik/traefik.provider.js.map +1 -0
- package/lib-esm/lib/traefik/treafik-service.provider.d.ts +41 -0
- package/lib-esm/lib/traefik/treafik-service.provider.js +211 -0
- package/lib-esm/lib/traefik/treafik-service.provider.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/instances/instances.context.js.map +1 -1
- package/lib-prod/instances/instances.controller.js.map +1 -1
- package/lib-prod/instances/instances.js.map +1 -1
- package/lib-prod/instances/instances.repository.js.map +1 -1
- package/lib-prod/instances/instances.terminal-ui.js.map +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/processes/processes.context.js.map +1 -1
- package/lib-prod/processes/processes.controller.js.map +1 -1
- package/lib-prod/processes/processes.js.map +1 -1
- package/lib-prod/processes/processes.repository.js.map +1 -1
- package/lib-prod/processes/processes.terminal-ui.js.map +1 -1
- package/lib-prod/processes/processes.utils.js.map +1 -1
- package/lib-prod/processes/processes.worker.controller.js.map +1 -1
- package/lib-prod/processes/processes.worker.js.map +1 -1
- package/lib-prod/traefik/traefik.provider.js +2 -2
- package/lib-prod/traefik/traefik.provider.js.map +1 -1
- package/lib-prod/traefik/treafik-service.provider.js.map +1 -1
- package/package.json +6 -2
- package/src.js +4 -20
- package/websql/fesm2022/cloud-websql.mjs +1 -1
- package/websql/fesm2022/cloud-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/cloud-websql.d.ts +1 -1
- package/websql-prod/fesm2022/cloud-websql-prod.mjs +1 -1
- package/websql-prod/fesm2022/cloud-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/cloud-websql-prod.d.ts +1 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { TaonRepository } from 'taon/lib';
|
|
2
|
+
import { child_process, dateformat, UtilsProcess, } from 'tnp-core/lib';
|
|
3
|
+
import { UtilsProcessLogger } from 'tnp-core/lib';
|
|
4
|
+
import { Processes } from './processes';
|
|
5
|
+
import { TaonBaseRepository } from 'taon/lib';
|
|
6
|
+
import { ProcessesState, ProcessesStatesAllowedStart, ProcessesStatesAllowedStop, } from './processes.models';
|
|
7
|
+
//#endregion
|
|
8
|
+
let ProcessesRepository = class ProcessesRepository extends TaonBaseRepository {
|
|
9
|
+
//#region fields and getters
|
|
10
|
+
entityClassResolveFn = () => Processes;
|
|
11
|
+
processFileLoggers = {};
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region get by process id
|
|
14
|
+
async getByProcessID(processId) {
|
|
15
|
+
//#region @websqlFunc
|
|
16
|
+
const proc = await this.findOne({
|
|
17
|
+
where: {
|
|
18
|
+
id: processId?.toString(),
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
return proc;
|
|
22
|
+
//#endregion
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region get by uniquer params
|
|
26
|
+
async getByUniqueParams({ cwd, command, }) {
|
|
27
|
+
//#region @websqlFunc
|
|
28
|
+
const proc = await this.findOne({
|
|
29
|
+
where: {
|
|
30
|
+
cwd,
|
|
31
|
+
command,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
return proc;
|
|
35
|
+
//#endregion
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region start process
|
|
39
|
+
async triggerStart(processId, options) {
|
|
40
|
+
//#region @backendFunc
|
|
41
|
+
options = options || {};
|
|
42
|
+
await this.getAndUpdateProcess(processId, async (proc) => {
|
|
43
|
+
if (!ProcessesStatesAllowedStart.includes(proc.state)) {
|
|
44
|
+
throw new Error(`Process not allowed to start with state: ${proc.state}`);
|
|
45
|
+
}
|
|
46
|
+
//#region prepare process for start
|
|
47
|
+
proc.state = ProcessesState.STARTING;
|
|
48
|
+
proc.outputLast40lines =
|
|
49
|
+
`${proc.outputLast40lines}` +
|
|
50
|
+
`\n----- new session ${dateformat(new Date(), 'dd-mm-yyyy_HH:MM:ss')} -----\n`;
|
|
51
|
+
const [cmd, ...commandArgs] = proc.command.split(' '); // safer: parse properly
|
|
52
|
+
const realProcess = child_process.spawn(cmd, commandArgs, {
|
|
53
|
+
env: { ...process.env, FORCE_COLOR: '1' },
|
|
54
|
+
stdio: ['ignore', 'pipe', 'pipe'], // don't inherit console
|
|
55
|
+
shell: true, // use shell if command has operators (&&, |, etc.)
|
|
56
|
+
});
|
|
57
|
+
proc.pid = realProcess.pid;
|
|
58
|
+
proc.ppid = process.pid;
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region prepare logging
|
|
61
|
+
const processFileLogger = new UtilsProcessLogger.ProcessFileLogger({
|
|
62
|
+
name: options.processName || `unknow-proc-name__id-${proc.id}`,
|
|
63
|
+
id: proc.id,
|
|
64
|
+
}, {
|
|
65
|
+
specialEvent: {
|
|
66
|
+
stderr: (proc.conditionProcessActiveStderr || []).map(stringInStream => ({
|
|
67
|
+
stringInStream,
|
|
68
|
+
callback: async () => {
|
|
69
|
+
await this.getAndUpdateProcess(proc.id, proc1 => {
|
|
70
|
+
proc1.state = ProcessesState.ACTIVE;
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
})),
|
|
74
|
+
stdout: (proc.conditionProcessActiveStdout || []).map(stringInStream => ({
|
|
75
|
+
stringInStream,
|
|
76
|
+
callback: async () => {
|
|
77
|
+
await this.getAndUpdateProcess(proc.id, proc1 => {
|
|
78
|
+
proc1.state = ProcessesState.ACTIVE;
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
})),
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
this.processFileLoggers[proc.id] = processFileLogger;
|
|
85
|
+
processFileLogger.startLogging(realProcess, {
|
|
86
|
+
cacheLinesMax: 40,
|
|
87
|
+
update: async ({ outputLines, stderrLines, stdoutLines }) => {
|
|
88
|
+
await this.getAndUpdateProcess(proc.id, proc1 => {
|
|
89
|
+
proc1.outputLast40lines = outputLines;
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
proc.fileLogAbsPath = processFileLogger.processLogAbsFilePath;
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region handle process exit
|
|
96
|
+
/**
|
|
97
|
+
* 15 - soft kill
|
|
98
|
+
* 9 - hard kill
|
|
99
|
+
* 1 - from code exit
|
|
100
|
+
* 0 - process done
|
|
101
|
+
*/
|
|
102
|
+
realProcess.on('exit', async (code, data) => {
|
|
103
|
+
await this.getAndUpdateProcess(proc.id, proc1 => {
|
|
104
|
+
if (proc1) {
|
|
105
|
+
if (proc1.state === ProcessesState.KILLING) {
|
|
106
|
+
proc1.state = ProcessesState.KILLED;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
proc1.state =
|
|
110
|
+
code === 0
|
|
111
|
+
? ProcessesState.ENDED_OK
|
|
112
|
+
: ProcessesState.ENDED_WITH_ERROR;
|
|
113
|
+
}
|
|
114
|
+
proc1.pid = null;
|
|
115
|
+
}
|
|
116
|
+
delete this.processFileLoggers[proc.id];
|
|
117
|
+
}, {
|
|
118
|
+
skipThrowingErrorWhenNoProcess: true,
|
|
119
|
+
executeCallbackWhenNoProcess: true,
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
//#endregion
|
|
123
|
+
});
|
|
124
|
+
//#endregion
|
|
125
|
+
}
|
|
126
|
+
//#endregion
|
|
127
|
+
//#region stop/remove process
|
|
128
|
+
async triggerStop(processId, options) {
|
|
129
|
+
//#region @websqlFunc
|
|
130
|
+
options = options || {};
|
|
131
|
+
await this.getAndUpdateProcess(processId, proc => {
|
|
132
|
+
const alreadyStopped = ProcessesStatesAllowedStart.includes(proc.state);
|
|
133
|
+
if (!alreadyStopped) {
|
|
134
|
+
if (!ProcessesStatesAllowedStop.includes(proc.state)) {
|
|
135
|
+
throw new Error(`Process not allowed to stop with state: ${proc.state}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (!alreadyStopped) {
|
|
139
|
+
proc.state = ProcessesState.KILLING;
|
|
140
|
+
}
|
|
141
|
+
setTimeout(async () => {
|
|
142
|
+
try {
|
|
143
|
+
await UtilsProcess.killProcess(proc.pid);
|
|
144
|
+
console.info(`Process killed successfully (by pid = ${proc.pid})`);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.error(`Not able to kill process by pid ${proc.pid}`);
|
|
148
|
+
}
|
|
149
|
+
if (options.deleteAfterKill) {
|
|
150
|
+
try {
|
|
151
|
+
await this.remove(proc);
|
|
152
|
+
}
|
|
153
|
+
catch (error) { }
|
|
154
|
+
}
|
|
155
|
+
}, 1000);
|
|
156
|
+
});
|
|
157
|
+
//#endregion
|
|
158
|
+
}
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region private methods
|
|
161
|
+
//#region private methods / get and update process
|
|
162
|
+
async getAndUpdateProcess(processId,
|
|
163
|
+
/**
|
|
164
|
+
* Callback with process to update
|
|
165
|
+
* (any modifications done in callback will be saved after its end)
|
|
166
|
+
*/
|
|
167
|
+
callback, options) {
|
|
168
|
+
//#region @backendFunc
|
|
169
|
+
options = options || {};
|
|
170
|
+
const proc = await this.findOne({
|
|
171
|
+
where: { id: processId?.toString() },
|
|
172
|
+
});
|
|
173
|
+
if (!proc) {
|
|
174
|
+
if (options.skipThrowingErrorWhenNoProcess) {
|
|
175
|
+
if (options.executeCallbackWhenNoProcess) {
|
|
176
|
+
await callback();
|
|
177
|
+
}
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
throw new Error(`No process with id ${processId}`);
|
|
181
|
+
}
|
|
182
|
+
await callback(proc);
|
|
183
|
+
await this.update(proc);
|
|
184
|
+
this.ctx.realtimeServer.triggerEntityPropertyChanges(proc, 'outputLast40lines');
|
|
185
|
+
//#endregion
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
ProcessesRepository = __decorate([
|
|
189
|
+
TaonRepository({
|
|
190
|
+
className: 'ProcessesRepository',
|
|
191
|
+
})
|
|
192
|
+
], ProcessesRepository);
|
|
193
|
+
export { ProcessesRepository };
|
|
194
|
+
//# sourceMappingURL=processes.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CoreModels } from 'tnp-core/lib';
|
|
2
|
+
import { BaseCliWorkerTerminalUI, BaseWorkerTerminalActionReturnType } from 'tnp-helpers/lib';
|
|
3
|
+
import { Processes } from './processes';
|
|
4
|
+
import { ProcessesController } from './processes.controller';
|
|
5
|
+
import { ProcessesWorker } from './processes.worker';
|
|
6
|
+
export declare class ProcessesTerminalUI extends BaseCliWorkerTerminalUI<ProcessesWorker> {
|
|
7
|
+
protected headerText(): Promise<string>;
|
|
8
|
+
protected textHeaderStyle(): CoreModels.CfontStyle;
|
|
9
|
+
getDummyProcessParams(): Promise<{
|
|
10
|
+
command: string;
|
|
11
|
+
cwd: string;
|
|
12
|
+
}>;
|
|
13
|
+
protected refetchProcess(process: Processes, processesController: ProcessesController): Promise<Processes>;
|
|
14
|
+
protected crudMenuForSingleProcess(processFromDb: Processes, processesController: ProcessesController): Promise<void>;
|
|
15
|
+
getWorkerTerminalActions(options?: {
|
|
16
|
+
exitIsOnlyReturn?: boolean;
|
|
17
|
+
chooseAction?: boolean;
|
|
18
|
+
}): BaseWorkerTerminalActionReturnType;
|
|
19
|
+
}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { config } from 'tnp-core/lib';
|
|
2
|
+
import { Helpers, UtilsCliClassMethod, UtilsTerminal, } from 'tnp-core/lib';
|
|
3
|
+
import { UtilsOs } from 'tnp-core/lib';
|
|
4
|
+
import { BaseCliWorkerTerminalUI, } from 'tnp-helpers/lib';
|
|
5
|
+
import { Processes } from './processes';
|
|
6
|
+
import { ProcessesController } from './processes.controller';
|
|
7
|
+
import { ProcessesStatesAllowedStart } from './processes.models';
|
|
8
|
+
import { ProcessesUtils } from './processes.utils';
|
|
9
|
+
//#endregion
|
|
10
|
+
let dummyProcessCreate = false;
|
|
11
|
+
export class ProcessesTerminalUI extends BaseCliWorkerTerminalUI {
|
|
12
|
+
//#region header text
|
|
13
|
+
async headerText() {
|
|
14
|
+
return 'Processes';
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region text header style
|
|
18
|
+
textHeaderStyle() {
|
|
19
|
+
return 'simpleBlock';
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region dummy process params
|
|
23
|
+
async getDummyProcessParams() {
|
|
24
|
+
//#region @backendFunc
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
const { $Global } = await import('tnp/lib');
|
|
27
|
+
const dummyDummyCommand = `${config.frameworkName} ${UtilsCliClassMethod.getFrom($Global.prototype.showRandomHamstersTypes, { globalMethod: true })}`;
|
|
28
|
+
const dummyProcessCwd = UtilsOs.getRealHomeDir();
|
|
29
|
+
return { command: dummyDummyCommand, cwd: dummyProcessCwd };
|
|
30
|
+
//#endregion
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region refetch process
|
|
34
|
+
async refetchProcess(process, processesController) {
|
|
35
|
+
//#region @backendFunc
|
|
36
|
+
while (true) {
|
|
37
|
+
try {
|
|
38
|
+
process = (await processesController.getByProcessID(process.id).request()).body.json;
|
|
39
|
+
return process;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
const fetchAgain = await UtilsTerminal.confirm({
|
|
43
|
+
message: `Not able to fetch process (id=${process.id}). Try again?`,
|
|
44
|
+
defaultValue: true,
|
|
45
|
+
});
|
|
46
|
+
if (!fetchAgain) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region crud menu for single deployment
|
|
55
|
+
async crudMenuForSingleProcess(processFromDb, processesController) {
|
|
56
|
+
//#region @backendFunc
|
|
57
|
+
while (true) {
|
|
58
|
+
Helpers.info(`Fetching processes data...`);
|
|
59
|
+
processFromDb = (await processesController.getByProcessID(processFromDb.id).request()).body.json;
|
|
60
|
+
UtilsTerminal.clearConsole();
|
|
61
|
+
// Helpers.info(`You selected process:
|
|
62
|
+
// id: ${processFromDb.id}
|
|
63
|
+
// command: ${processFromDb.command}
|
|
64
|
+
// cwd: ${processFromDb.cwd}
|
|
65
|
+
// state: ${processFromDb.state}`);
|
|
66
|
+
const choices = {
|
|
67
|
+
back: {
|
|
68
|
+
name: ' - back - ',
|
|
69
|
+
},
|
|
70
|
+
startProcess: {
|
|
71
|
+
name: 'Start Process',
|
|
72
|
+
},
|
|
73
|
+
processInfo: {
|
|
74
|
+
name: 'Process Info',
|
|
75
|
+
},
|
|
76
|
+
realtimeProcessMonitor: {
|
|
77
|
+
name: 'Realtime Monitor',
|
|
78
|
+
},
|
|
79
|
+
displayProcessLog: {
|
|
80
|
+
name: 'Display Log File',
|
|
81
|
+
},
|
|
82
|
+
stopProcess: {
|
|
83
|
+
name: 'Stop Process',
|
|
84
|
+
},
|
|
85
|
+
removeProcess: {
|
|
86
|
+
name: 'Remove Process',
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
if (ProcessesStatesAllowedStart.includes(processFromDb.state)) {
|
|
90
|
+
delete choices.stopProcess;
|
|
91
|
+
delete choices.realtimeProcessMonitor;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
delete choices.startProcess;
|
|
95
|
+
}
|
|
96
|
+
const selected = await UtilsTerminal.select({
|
|
97
|
+
choices,
|
|
98
|
+
question: `[Process id=${processFromDb.id},status=${processFromDb.state}] What do you want to do?`,
|
|
99
|
+
});
|
|
100
|
+
switch (selected) {
|
|
101
|
+
case 'back':
|
|
102
|
+
return;
|
|
103
|
+
case 'processInfo':
|
|
104
|
+
processFromDb = await this.refetchProcess(processFromDb, processesController);
|
|
105
|
+
if (!processFromDb) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
UtilsTerminal.clearConsole();
|
|
109
|
+
console.log(processFromDb.fullPreviewString({ boldValues: true }));
|
|
110
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync();
|
|
111
|
+
break;
|
|
112
|
+
case 'startProcess':
|
|
113
|
+
await processesController.triggerStart(processFromDb.id).request();
|
|
114
|
+
Helpers.info(`Triggered start for process`);
|
|
115
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
116
|
+
message: 'Press any key to go back to main menu',
|
|
117
|
+
});
|
|
118
|
+
break;
|
|
119
|
+
case 'realtimeProcessMonitor':
|
|
120
|
+
await ProcessesUtils.displayRealtimeProgressMonitor(processFromDb.id, processesController);
|
|
121
|
+
break;
|
|
122
|
+
case 'displayProcessLog':
|
|
123
|
+
await UtilsTerminal.previewLongListGitLogLike(Helpers.readFile(processFromDb.fileLogAbsPath) ||
|
|
124
|
+
'< empty log file >');
|
|
125
|
+
break;
|
|
126
|
+
case 'stopProcess':
|
|
127
|
+
await processesController.triggerStop(processFromDb.id).request();
|
|
128
|
+
Helpers.info(`Triggered stop for process..please wait`);
|
|
129
|
+
await processesController.waitUntilProcessStopped(processFromDb.id);
|
|
130
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
131
|
+
message: 'Press any key to go back to main menu',
|
|
132
|
+
});
|
|
133
|
+
break;
|
|
134
|
+
case 'removeProcess':
|
|
135
|
+
await processesController
|
|
136
|
+
.triggerStop(processFromDb.id, true)
|
|
137
|
+
.request();
|
|
138
|
+
Helpers.info(`Triggered remove of process... please wait... `);
|
|
139
|
+
await processesController.waitUntilProcessDeleted(processFromDb.id);
|
|
140
|
+
Helpers.info(`Process removed successfully.`);
|
|
141
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
142
|
+
message: 'Press any key to go back to main menu',
|
|
143
|
+
});
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
}
|
|
149
|
+
//#endregion
|
|
150
|
+
getWorkerTerminalActions(options) {
|
|
151
|
+
//#region @backendFunc
|
|
152
|
+
const myActions = {
|
|
153
|
+
//#region get all processes from backend
|
|
154
|
+
getStuffFromBackend: {
|
|
155
|
+
name: 'Get all processes from backend',
|
|
156
|
+
action: async () => {
|
|
157
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
158
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
159
|
+
methodOptions: {
|
|
160
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/getStuffFromBackend',
|
|
161
|
+
},
|
|
162
|
+
controllerClass: ProcessesController,
|
|
163
|
+
});
|
|
164
|
+
while (true) {
|
|
165
|
+
const list = (await processesController.getAll().request())?.body.json || [];
|
|
166
|
+
Helpers.info(`Fetched ${list.length} processes from backend.`);
|
|
167
|
+
const options = [
|
|
168
|
+
{ name: ' - back - ', value: 'back' },
|
|
169
|
+
...list.map(c => ({
|
|
170
|
+
name: c.previewString,
|
|
171
|
+
value: c.id?.toString(),
|
|
172
|
+
})),
|
|
173
|
+
];
|
|
174
|
+
const selected = await UtilsTerminal.select({
|
|
175
|
+
choices: options,
|
|
176
|
+
question: 'Select process',
|
|
177
|
+
});
|
|
178
|
+
if (selected !== 'back') {
|
|
179
|
+
await this.crudMenuForSingleProcess(list.find(l => l.id?.toString() === selected), processesController);
|
|
180
|
+
}
|
|
181
|
+
if (selected === 'back') {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region create custom process
|
|
189
|
+
startCustomProcess: {
|
|
190
|
+
name: 'Start custom process',
|
|
191
|
+
action: async () => {
|
|
192
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
193
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
194
|
+
methodOptions: {
|
|
195
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/startCustomProcess',
|
|
196
|
+
},
|
|
197
|
+
controllerClass: ProcessesController,
|
|
198
|
+
});
|
|
199
|
+
const command = await UtilsTerminal.input({
|
|
200
|
+
required: true,
|
|
201
|
+
question: 'Enter command to run:',
|
|
202
|
+
});
|
|
203
|
+
const processFromDBReq = await processesController
|
|
204
|
+
.save(new Processes().clone({
|
|
205
|
+
command,
|
|
206
|
+
cwd: process.cwd(),
|
|
207
|
+
}))
|
|
208
|
+
.request();
|
|
209
|
+
const processFromDB = processFromDBReq.body.json;
|
|
210
|
+
await processesController.triggerStart(processFromDB.id).request();
|
|
211
|
+
Helpers.info(`Triggered start for process -
|
|
212
|
+
|
|
213
|
+
> command: "${command}"
|
|
214
|
+
|
|
215
|
+
`);
|
|
216
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
217
|
+
message: 'Press any key to go back to main menu',
|
|
218
|
+
});
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
//#endregion
|
|
222
|
+
//#region create dummy process
|
|
223
|
+
createDummyProcess: {
|
|
224
|
+
name: 'DUMMY PROCESS - create and start',
|
|
225
|
+
action: async () => {
|
|
226
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
227
|
+
try {
|
|
228
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
229
|
+
methodOptions: {
|
|
230
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/createDummyProcess',
|
|
231
|
+
},
|
|
232
|
+
controllerClass: ProcessesController,
|
|
233
|
+
});
|
|
234
|
+
const { command, cwd } = await this.getDummyProcessParams();
|
|
235
|
+
const processFromDBReq = await processesController
|
|
236
|
+
.save(new Processes().clone({
|
|
237
|
+
command,
|
|
238
|
+
cwd,
|
|
239
|
+
}))
|
|
240
|
+
.request();
|
|
241
|
+
const processFromDB = processFromDBReq.body.json;
|
|
242
|
+
await processesController.triggerStart(processFromDB.id).request();
|
|
243
|
+
dummyProcessCreate = true;
|
|
244
|
+
Helpers.info(`Triggered start for dummy process -
|
|
245
|
+
|
|
246
|
+
> command: "${command}"
|
|
247
|
+
|
|
248
|
+
`);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
console.log(error);
|
|
252
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
253
|
+
message: 'Press any key to go back to main menu',
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
//#endregion
|
|
259
|
+
//#region stop dummy process
|
|
260
|
+
stopDummyProcess: {
|
|
261
|
+
name: 'DUMMY PROCESS - stop process',
|
|
262
|
+
action: async () => {
|
|
263
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
264
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
265
|
+
methodOptions: {
|
|
266
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/stopDummyProcess',
|
|
267
|
+
},
|
|
268
|
+
controllerClass: ProcessesController,
|
|
269
|
+
});
|
|
270
|
+
const { command, cwd } = await this.getDummyProcessParams();
|
|
271
|
+
const processFromDBReq = await processesController
|
|
272
|
+
.save(new Processes().clone({
|
|
273
|
+
command,
|
|
274
|
+
cwd,
|
|
275
|
+
}))
|
|
276
|
+
.request();
|
|
277
|
+
const processFromDB = processFromDBReq.body.json;
|
|
278
|
+
await processesController.triggerStop(processFromDB.id).request();
|
|
279
|
+
Helpers.info(`Triggered stop for dummy process `);
|
|
280
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
281
|
+
message: 'Press any key to go back to main menu',
|
|
282
|
+
});
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
//#endregion
|
|
286
|
+
//#region get dummy process info
|
|
287
|
+
getDummyProcessInfo: {
|
|
288
|
+
name: 'DUMMY PROCESS - get info',
|
|
289
|
+
action: async () => {
|
|
290
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
291
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
292
|
+
methodOptions: {
|
|
293
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/getDummyProcessInfo',
|
|
294
|
+
},
|
|
295
|
+
controllerClass: ProcessesController,
|
|
296
|
+
});
|
|
297
|
+
const { command, cwd } = await this.getDummyProcessParams();
|
|
298
|
+
const processFromDBReq = await processesController
|
|
299
|
+
.getByUniqueParams(cwd, command)
|
|
300
|
+
.request();
|
|
301
|
+
const processFromDB = processFromDBReq.body.json;
|
|
302
|
+
Helpers.info(`
|
|
303
|
+
Dummy process info:
|
|
304
|
+
|
|
305
|
+
> id: ${processFromDB.id}
|
|
306
|
+
> cwd: ${processFromDB.cwd}
|
|
307
|
+
> command: ${processFromDB.command}
|
|
308
|
+
> state: ${processFromDB.state}
|
|
309
|
+
> pid: ${processFromDB.pid}
|
|
310
|
+
> ppid: ${processFromDB.ppid}
|
|
311
|
+
> log path: ${processFromDB.fileLogAbsPath}
|
|
312
|
+
> conditionProcessActiveStdout: ${(processFromDB.conditionProcessActiveStdout || []).join(', ') || '<empty>'}
|
|
313
|
+
> conditionProcessActiveStderr: ${(processFromDB.conditionProcessActiveStderr || []).join(', ') || '<empty>'}
|
|
314
|
+
|
|
315
|
+
`);
|
|
316
|
+
await UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
317
|
+
message: 'Press any key to go back to main menu',
|
|
318
|
+
});
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
//#endregion
|
|
322
|
+
//#region preview log file of dummy process
|
|
323
|
+
getPreviewLogFile: {
|
|
324
|
+
name: 'DUMMY PROCESS - preview log file',
|
|
325
|
+
action: async () => {
|
|
326
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
327
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
328
|
+
methodOptions: {
|
|
329
|
+
calledFrom: 'ProcessesTerminalUI.getWorkerTerminalActions/getPreviewLogFile',
|
|
330
|
+
},
|
|
331
|
+
controllerClass: ProcessesController,
|
|
332
|
+
});
|
|
333
|
+
const { command, cwd } = await this.getDummyProcessParams();
|
|
334
|
+
const processFromDBReq = await processesController
|
|
335
|
+
.getByUniqueParams(cwd, command)
|
|
336
|
+
.request();
|
|
337
|
+
const processFromDB = processFromDBReq.body.json;
|
|
338
|
+
await UtilsTerminal.previewLongListGitLogLike(Helpers.readFile(processFromDB.fileLogAbsPath) ||
|
|
339
|
+
'< empty log file >');
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
//#endregion
|
|
343
|
+
//#region get realtime preview of dummy process output
|
|
344
|
+
realtimePreviewDummyProcess: {
|
|
345
|
+
name: 'DUMMY PROCESS - get realtime preview',
|
|
346
|
+
action: async () => {
|
|
347
|
+
// Helpers.info(`Stuff from backend will be fetched`);
|
|
348
|
+
const processesController = await this.worker.getRemoteControllerFor({
|
|
349
|
+
methodOptions: {
|
|
350
|
+
calledFrom: 'realtimePreviewDummyProcess',
|
|
351
|
+
},
|
|
352
|
+
controllerClass: ProcessesController,
|
|
353
|
+
});
|
|
354
|
+
const { command, cwd } = await this.getDummyProcessParams();
|
|
355
|
+
const processFromDBReq = await processesController
|
|
356
|
+
.getByUniqueParams(cwd, command)
|
|
357
|
+
.request();
|
|
358
|
+
const processFromDB = processFromDBReq.body.json;
|
|
359
|
+
await ProcessesUtils.displayRealtimeProgressMonitor(processFromDB.id, processesController);
|
|
360
|
+
},
|
|
361
|
+
},
|
|
362
|
+
//#endregion
|
|
363
|
+
};
|
|
364
|
+
if (!dummyProcessCreate) {
|
|
365
|
+
delete myActions.stopDummyProcess;
|
|
366
|
+
delete myActions.getDummyProcessInfo;
|
|
367
|
+
delete myActions.getPreviewLogFile;
|
|
368
|
+
delete myActions.realtimePreviewDummyProcess;
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
...this.chooseAction,
|
|
372
|
+
...myActions,
|
|
373
|
+
...super.getWorkerTerminalActions({ ...options, chooseAction: false }),
|
|
374
|
+
};
|
|
375
|
+
//#endregion
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=processes.terminal-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.terminal-ui.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ProcessesController } from './processes.controller';
|
|
2
|
+
export declare namespace ProcessesUtils {
|
|
3
|
+
const displayRealtimeProgressMonitor: (processId: number | string, processesController: ProcessesController, options?: {
|
|
4
|
+
resolveWhenTextInOutput?: string;
|
|
5
|
+
}) => Promise<void>;
|
|
6
|
+
}
|