@wocker/ws 1.0.22 → 1.0.24
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/lib/{AppModule.d.ts → RootModule.d.ts} +1 -1
- package/lib/RootModule.js +93 -0
- package/lib/controllers/DebugController.d.ts +1 -1
- package/lib/controllers/DebugController.js +7 -9
- package/lib/controllers/ExperimentalController.d.ts +8 -0
- package/lib/controllers/ExperimentalController.js +76 -0
- package/lib/controllers/PluginController.d.ts +2 -1
- package/lib/controllers/PluginController.js +3 -3
- package/lib/controllers/ProjectController.d.ts +8 -7
- package/lib/controllers/ProjectController.js +123 -240
- package/lib/controllers/index.d.ts +1 -4
- package/lib/controllers/index.js +1 -4
- package/lib/env.d.ts +2 -3
- package/lib/env.js +3 -4
- package/lib/main.js +8 -8
- package/lib/makes/Plugin.d.ts +0 -1
- package/lib/makes/Plugin.js +0 -1
- package/lib/makes/index.d.ts +0 -2
- package/lib/makes/index.js +0 -2
- package/lib/modules/app/index.d.ts +2 -0
- package/lib/modules/app/index.js +32 -0
- package/lib/modules/docker/index.d.ts +8 -0
- package/lib/modules/docker/index.js +41 -0
- package/lib/modules/docker/services/ContainerService.d.ts +14 -0
- package/lib/modules/docker/services/ContainerService.js +115 -0
- package/lib/{services → modules/docker/services}/DockerService.d.ts +12 -5
- package/lib/{services → modules/docker/services}/DockerService.js +27 -114
- package/lib/modules/docker/services/ImageService.d.ts +18 -0
- package/lib/modules/docker/services/ImageService.js +68 -0
- package/lib/modules/docker/services/ModemService.d.ts +15 -0
- package/lib/modules/docker/services/ModemService.js +138 -0
- package/lib/modules/docker/services/ProtoService.d.ts +6 -0
- package/lib/modules/docker/services/ProtoService.js +20 -0
- package/lib/modules/index.d.ts +6 -0
- package/lib/{keystore → modules}/index.js +6 -1
- package/lib/{controllers → modules/keystore/controllers}/KeystoreController.d.ts +2 -2
- package/lib/{controllers → modules/keystore/controllers}/KeystoreController.js +4 -5
- package/lib/modules/keystore/index.d.ts +4 -0
- package/lib/modules/keystore/index.js +29 -0
- package/lib/{keystore → modules/keystore}/providers/FileKeystoreProvider.d.ts +3 -4
- package/lib/{keystore → modules/keystore}/providers/FileKeystoreProvider.js +4 -5
- package/lib/{keystore → modules/keystore}/providers/KeytarKeystoreProvider.js +1 -1
- package/lib/{keystore → modules/keystore/services}/KeystoreService.d.ts +4 -3
- package/lib/{keystore → modules/keystore/services}/KeystoreService.js +9 -6
- package/lib/modules/preset/controllers/PresetController.d.ts +18 -0
- package/lib/modules/preset/controllers/PresetController.js +157 -0
- package/lib/modules/preset/controllers/PresetListener.d.ts +14 -0
- package/lib/modules/preset/controllers/PresetListener.js +140 -0
- package/lib/modules/preset/index.d.ts +5 -0
- package/lib/modules/preset/index.js +39 -0
- package/lib/modules/preset/repositories/PresetRepository.d.ts +16 -0
- package/lib/{repositories → modules/preset/repositories}/PresetRepository.js +9 -11
- package/lib/{services → modules/preset/services}/PresetService.d.ts +4 -12
- package/lib/{services → modules/preset/services}/PresetService.js +22 -27
- package/lib/modules/project/controllers/ProjectController.d.ts +13 -0
- package/lib/modules/project/controllers/ProjectController.js +127 -0
- package/lib/modules/project/index.d.ts +5 -0
- package/lib/modules/project/index.js +39 -0
- package/lib/modules/project/repositories/ProjectRepository.d.ts +13 -0
- package/lib/modules/project/repositories/ProjectRepository.js +90 -0
- package/lib/modules/project/services/ProjectService.d.ts +21 -0
- package/lib/modules/project/services/ProjectService.js +211 -0
- package/lib/{controllers → modules/proxy/controllers}/CertController.d.ts +2 -1
- package/lib/{controllers → modules/proxy/controllers}/CertController.js +4 -3
- package/lib/{controllers → modules/proxy/controllers}/ProxyController.d.ts +5 -4
- package/lib/{controllers → modules/proxy/controllers}/ProxyController.js +12 -11
- package/lib/modules/proxy/index.d.ts +5 -0
- package/lib/modules/proxy/index.js +41 -0
- package/lib/{services → modules/proxy/services}/CertService.d.ts +5 -6
- package/lib/{services → modules/proxy/services}/CertService.js +13 -14
- package/lib/{services → modules/proxy/services}/ProxyService.d.ts +4 -4
- package/lib/{services → modules/proxy/services}/ProxyService.js +27 -20
- package/lib/services/PluginService.d.ts +1 -3
- package/lib/services/PluginService.js +12 -18
- package/lib/utils/followProgress2.d.ts +1 -0
- package/lib/utils/followProgress2.js +63 -0
- package/lib/utils/index.d.ts +1 -2
- package/lib/utils/index.js +1 -2
- package/package.json +7 -8
- package/proto/buildkit.proto +55 -0
- package/proto/solver/pb/ops.proto +443 -0
- package/lib/AppModule.js +0 -84
- package/lib/controllers/PresetController.d.ts +0 -23
- package/lib/controllers/PresetController.js +0 -361
- package/lib/keystore/index.d.ts +0 -1
- package/lib/keystore/types/Encryption.d.ts +0 -9
- package/lib/keystore/types/Encryption.js +0 -81
- package/lib/keystore/types/Encryptor.d.ts +0 -10
- package/lib/keystore/types/Encryptor.js +0 -59
- package/lib/makes/FS.d.ts +0 -27
- package/lib/makes/FS.js +0 -284
- package/lib/makes/LineConvertStream.d.ts +0 -11
- package/lib/makes/LineConvertStream.js +0 -42
- package/lib/makes/Logger.d.ts +0 -9
- package/lib/makes/Logger.js +0 -34
- package/lib/plugins/MongodbPlugin.d.ts +0 -20
- package/lib/plugins/MongodbPlugin.js +0 -288
- package/lib/plugins/index.d.ts +0 -1
- package/lib/plugins/index.js +0 -17
- package/lib/repositories/PresetRepository.d.ts +0 -23
- package/lib/repositories/index.d.ts +0 -1
- package/lib/repositories/index.js +0 -17
- package/lib/services/AppConfigService.d.ts +0 -35
- package/lib/services/AppConfigService.js +0 -163
- package/lib/services/AppEventsService.d.ts +0 -9
- package/lib/services/AppEventsService.js +0 -43
- package/lib/services/LogService.d.ts +0 -15
- package/lib/services/LogService.js +0 -67
- package/lib/services/ProjectService.d.ts +0 -27
- package/lib/services/ProjectService.js +0 -207
- package/lib/services/index.d.ts +0 -10
- package/lib/services/index.js +0 -26
- package/lib/utils/followProgress.d.ts +0 -1
- package/lib/utils/followProgress.js +0 -73
- package/presets/go/Dockerfile +0 -19
- package/presets/go/config.json +0 -14
- package/presets/php-fpm/Dockerfile +0 -173
- package/presets/php-fpm/bin/compare-version +0 -3
- package/presets/php-fpm/config.json +0 -55
- package/presets/php-fpm/etc/nginx/sites-available/default.conf +0 -36
- /package/lib/{utils/format-size-units.d.ts → modules/docker/utils/formatSizeUnits.d.ts} +0 -0
- /package/lib/{utils/format-size-units.js → modules/docker/utils/formatSizeUnits.js} +0 -0
- /package/lib/{keystore → modules/keystore}/providers/KeytarKeystoreProvider.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/types/FileKeystore.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/types/FileKeystore.js +0 -0
- /package/lib/{keystore → modules/keystore}/types/Keytar.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/types/Keytar.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/createEncryptionKey.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/createEncryptionKey.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/createPasswordHash.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/createPasswordHash.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/decrypt.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/decrypt.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/encrypt.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/encrypt.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/index.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/index.js +0 -0
- /package/lib/{keystore → modules/keystore}/utils/verifyPasswordHash.d.ts +0 -0
- /package/lib/{keystore → modules/keystore}/utils/verifyPasswordHash.js +0 -0
|
@@ -55,18 +55,20 @@ const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
|
55
55
|
const yoctocolors_cjs_1 = __importDefault(require("yoctocolors-cjs"));
|
|
56
56
|
const Path = __importStar(require("path"));
|
|
57
57
|
const async_mutex_1 = require("async-mutex");
|
|
58
|
-
const
|
|
59
|
-
const
|
|
58
|
+
const docker_1 = require("../modules/docker");
|
|
59
|
+
const project_1 = require("../modules/project");
|
|
60
60
|
let ProjectController = class ProjectController {
|
|
61
|
-
constructor(appConfigService,
|
|
61
|
+
constructor(appConfigService, processService, eventService, projectService, projectRepository, logService, dockerService) {
|
|
62
62
|
this.appConfigService = appConfigService;
|
|
63
|
-
this.
|
|
63
|
+
this.processService = processService;
|
|
64
|
+
this.eventService = eventService;
|
|
64
65
|
this.projectService = projectService;
|
|
66
|
+
this.projectRepository = projectRepository;
|
|
65
67
|
this.logService = logService;
|
|
66
68
|
this.dockerService = dockerService;
|
|
67
69
|
}
|
|
68
70
|
async getProjectNames() {
|
|
69
|
-
const projects = this.
|
|
71
|
+
const projects = this.projectRepository.search();
|
|
70
72
|
return projects.map((project) => {
|
|
71
73
|
return project.name;
|
|
72
74
|
});
|
|
@@ -81,16 +83,16 @@ let ProjectController = class ProjectController {
|
|
|
81
83
|
}
|
|
82
84
|
}
|
|
83
85
|
async init(name, type) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
const fs = new core_1.FileSystem(this.processService.pwd());
|
|
87
|
+
let project = this.projectRepository.searchOne({
|
|
88
|
+
path: fs.path()
|
|
86
89
|
});
|
|
87
|
-
const fs = new core_1.FileSystem(this.appConfigService.pwd());
|
|
88
90
|
if (!project) {
|
|
89
|
-
project = this.
|
|
90
|
-
path:
|
|
91
|
+
project = this.projectRepository.fromObject({
|
|
92
|
+
path: fs.path()
|
|
91
93
|
});
|
|
92
94
|
}
|
|
93
|
-
project.path =
|
|
95
|
+
project.path = fs.path();
|
|
94
96
|
if (name) {
|
|
95
97
|
project.name = name;
|
|
96
98
|
}
|
|
@@ -104,7 +106,7 @@ let ProjectController = class ProjectController {
|
|
|
104
106
|
if (typeof name !== "string") {
|
|
105
107
|
return true;
|
|
106
108
|
}
|
|
107
|
-
const otherProject = this.
|
|
109
|
+
const otherProject = this.projectRepository.searchOne({
|
|
108
110
|
name
|
|
109
111
|
});
|
|
110
112
|
if (otherProject && otherProject.path !== project.path) {
|
|
@@ -122,13 +124,14 @@ let ProjectController = class ProjectController {
|
|
|
122
124
|
if (!type || !project.type || !mapTypes[project.type]) {
|
|
123
125
|
project.type = await (0, utils_1.promptSelect)({
|
|
124
126
|
message: "Project type",
|
|
127
|
+
required: true,
|
|
125
128
|
options: mapTypes,
|
|
126
129
|
default: project.type
|
|
127
130
|
});
|
|
128
131
|
}
|
|
129
132
|
switch (project.type) {
|
|
130
133
|
case core_1.PROJECT_TYPE_DOCKERFILE: {
|
|
131
|
-
const files =
|
|
134
|
+
const files = fs.readdir();
|
|
132
135
|
const dockerfiles = files.filter((fileName) => {
|
|
133
136
|
if (new RegExp("^(.*)\\.dockerfile$").test(fileName)) {
|
|
134
137
|
return true;
|
|
@@ -140,6 +143,7 @@ let ProjectController = class ProjectController {
|
|
|
140
143
|
}
|
|
141
144
|
project.dockerfile = await (0, utils_1.promptSelect)({
|
|
142
145
|
message: "Dockerfile",
|
|
146
|
+
required: true,
|
|
143
147
|
options: dockerfiles.map((dockerfile) => {
|
|
144
148
|
return {
|
|
145
149
|
value: dockerfile
|
|
@@ -157,23 +161,44 @@ let ProjectController = class ProjectController {
|
|
|
157
161
|
});
|
|
158
162
|
break;
|
|
159
163
|
}
|
|
164
|
+
case core_1.PROJECT_TYPE_COMPOSE: {
|
|
165
|
+
const composeFiles = fs.readdir().filter((file) => {
|
|
166
|
+
return /docker-compose\./.test(file);
|
|
167
|
+
});
|
|
168
|
+
if (composeFiles.length === 0) {
|
|
169
|
+
throw new Error("docker-compose files not found");
|
|
170
|
+
}
|
|
171
|
+
project.composefile = await (0, utils_1.promptSelect)({
|
|
172
|
+
message: "Docker compose",
|
|
173
|
+
required: true,
|
|
174
|
+
options: composeFiles,
|
|
175
|
+
default: project.composefile
|
|
176
|
+
});
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
160
179
|
case core_1.PROJECT_TYPE_PRESET:
|
|
161
180
|
break;
|
|
162
181
|
default:
|
|
163
182
|
throw new Error("Invalid project type");
|
|
164
183
|
}
|
|
165
|
-
await this.
|
|
166
|
-
|
|
184
|
+
await this.eventService.emit("project:init", project);
|
|
185
|
+
project.save();
|
|
167
186
|
}
|
|
168
187
|
async destroy(name) {
|
|
169
188
|
const project = this.projectService.get(name);
|
|
189
|
+
await this.projectService.stop(project);
|
|
190
|
+
this.appConfigService.removeProject(project.id);
|
|
191
|
+
this.appConfigService.save();
|
|
192
|
+
this.appConfigService.fs.rm(`projects/${project.id}`, {
|
|
193
|
+
recursive: true
|
|
194
|
+
});
|
|
170
195
|
}
|
|
171
196
|
async projectList(all) {
|
|
172
197
|
const table = new cli_table3_1.default({
|
|
173
198
|
head: ["Name", "Type", "Status"],
|
|
174
199
|
colAligns: ["left", "center", "center"]
|
|
175
200
|
});
|
|
176
|
-
const projects = this.
|
|
201
|
+
const projects = this.projectRepository.search();
|
|
177
202
|
for (const project of projects) {
|
|
178
203
|
const container = await this.dockerService.getContainer(project.containerName);
|
|
179
204
|
if (!container) {
|
|
@@ -187,28 +212,8 @@ let ProjectController = class ProjectController {
|
|
|
187
212
|
}
|
|
188
213
|
return table.toString();
|
|
189
214
|
}
|
|
190
|
-
async start(name, detach, attach, rebuild, restart) {
|
|
191
|
-
const project = this.projectService.get(name);
|
|
192
|
-
await this.projectService.start(project, restart, rebuild);
|
|
193
|
-
if (attach) {
|
|
194
|
-
await this.dockerService.attach(project.containerName);
|
|
195
|
-
}
|
|
196
|
-
if (detach) {
|
|
197
|
-
console.info(yoctocolors_cjs_1.default.yellow("Warning: Detach option is deprecated"));
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
async stop(name) {
|
|
201
|
-
if (name) {
|
|
202
|
-
this.projectService.cdProject(name);
|
|
203
|
-
}
|
|
204
|
-
const project = this.projectService.get();
|
|
205
|
-
await this.projectService.stop(project);
|
|
206
|
-
}
|
|
207
215
|
async domains(name) {
|
|
208
|
-
|
|
209
|
-
this.projectService.cdProject(name);
|
|
210
|
-
}
|
|
211
|
-
const project = this.projectService.get();
|
|
216
|
+
const project = this.projectService.get(name);
|
|
212
217
|
const table = new cli_table3_1.default({
|
|
213
218
|
head: [yoctocolors_cjs_1.default.yellow("Domain")]
|
|
214
219
|
});
|
|
@@ -218,49 +223,34 @@ let ProjectController = class ProjectController {
|
|
|
218
223
|
return table.toString();
|
|
219
224
|
}
|
|
220
225
|
async addDomain(addDomains, name) {
|
|
221
|
-
|
|
222
|
-
this.projectService.cdProject(name);
|
|
223
|
-
}
|
|
224
|
-
const project = this.projectService.get();
|
|
226
|
+
const project = this.projectService.get(name);
|
|
225
227
|
for (const domain of addDomains) {
|
|
226
228
|
project.addDomain(domain);
|
|
227
229
|
}
|
|
228
|
-
|
|
230
|
+
project.save();
|
|
229
231
|
}
|
|
230
232
|
async setDomains(domains, name) {
|
|
231
|
-
|
|
232
|
-
this.projectService.cdProject(name);
|
|
233
|
-
}
|
|
234
|
-
const project = this.projectService.get();
|
|
233
|
+
const project = this.projectService.get(name);
|
|
235
234
|
project.clearDomains();
|
|
236
235
|
for (const domain of domains) {
|
|
237
236
|
project.addDomain(domain);
|
|
238
237
|
}
|
|
239
|
-
|
|
238
|
+
project.save();
|
|
240
239
|
}
|
|
241
240
|
async removeDomain(removeDomains, name) {
|
|
242
|
-
|
|
243
|
-
this.projectService.cdProject(name);
|
|
244
|
-
}
|
|
245
|
-
const project = this.projectService.get();
|
|
241
|
+
const project = this.projectService.get(name);
|
|
246
242
|
for (const domain of removeDomains) {
|
|
247
243
|
project.removeDomain(domain);
|
|
248
244
|
}
|
|
249
|
-
|
|
245
|
+
project.save();
|
|
250
246
|
}
|
|
251
247
|
async clearDomain(name) {
|
|
252
|
-
|
|
253
|
-
this.projectService.cdProject(name);
|
|
254
|
-
}
|
|
255
|
-
const project = this.projectService.get();
|
|
248
|
+
const project = this.projectService.get(name);
|
|
256
249
|
project.clearDomains();
|
|
257
|
-
|
|
250
|
+
project.save();
|
|
258
251
|
}
|
|
259
252
|
async ports(name) {
|
|
260
|
-
|
|
261
|
-
this.projectService.cdProject(name);
|
|
262
|
-
}
|
|
263
|
-
const project = this.projectService.get();
|
|
253
|
+
const project = this.projectService.get(name);
|
|
264
254
|
const table = new cli_table3_1.default({
|
|
265
255
|
head: ["Ports"]
|
|
266
256
|
});
|
|
@@ -270,42 +260,30 @@ let ProjectController = class ProjectController {
|
|
|
270
260
|
return table.toString();
|
|
271
261
|
}
|
|
272
262
|
async addPort(hostPort, containerPort, name) {
|
|
273
|
-
|
|
274
|
-
this.projectService.cdProject(name);
|
|
275
|
-
}
|
|
276
|
-
const project = this.projectService.get();
|
|
263
|
+
const project = this.projectService.get(name);
|
|
277
264
|
project.linkPort(parseInt(hostPort), parseInt(containerPort));
|
|
278
|
-
|
|
265
|
+
project.save();
|
|
279
266
|
}
|
|
280
267
|
async removePort(hostPort, containerPort, name) {
|
|
281
|
-
|
|
282
|
-
this.projectService.cdProject(name);
|
|
283
|
-
}
|
|
284
|
-
const project = this.projectService.get();
|
|
268
|
+
const project = this.projectService.get(name);
|
|
285
269
|
project.unlinkPort(parseInt(hostPort), parseInt(containerPort));
|
|
286
|
-
|
|
270
|
+
project.save();
|
|
287
271
|
}
|
|
288
272
|
async clearPorts(name) {
|
|
289
|
-
|
|
290
|
-
this.projectService.cdProject(name);
|
|
291
|
-
}
|
|
292
|
-
const project = this.projectService.get();
|
|
273
|
+
const project = this.projectService.get(name);
|
|
293
274
|
if (project.ports) {
|
|
294
275
|
delete project.ports;
|
|
295
|
-
|
|
276
|
+
project.save();
|
|
296
277
|
}
|
|
297
278
|
}
|
|
298
279
|
async configList(name, global) {
|
|
299
|
-
if (name) {
|
|
300
|
-
this.projectService.cdProject(name);
|
|
301
|
-
}
|
|
302
280
|
let env;
|
|
303
281
|
if (!global) {
|
|
304
|
-
const project = this.projectService.get();
|
|
282
|
+
const project = this.projectService.get(name);
|
|
305
283
|
env = project.env || {};
|
|
306
284
|
}
|
|
307
285
|
else {
|
|
308
|
-
const config = this.appConfigService.
|
|
286
|
+
const config = this.appConfigService.config;
|
|
309
287
|
env = config.env || {};
|
|
310
288
|
}
|
|
311
289
|
const table = new cli_table3_1.default({
|
|
@@ -317,12 +295,9 @@ let ProjectController = class ProjectController {
|
|
|
317
295
|
return table.toString();
|
|
318
296
|
}
|
|
319
297
|
async configGet(keys, name, global) {
|
|
320
|
-
if (name) {
|
|
321
|
-
this.projectService.cdProject(name);
|
|
322
|
-
}
|
|
323
298
|
let config = global
|
|
324
|
-
? this.appConfigService.
|
|
325
|
-
: this.projectService.get();
|
|
299
|
+
? this.appConfigService.config
|
|
300
|
+
: this.projectService.get(name);
|
|
326
301
|
const table = new cli_table3_1.default({
|
|
327
302
|
head: ["KEY", "VALUE"]
|
|
328
303
|
});
|
|
@@ -336,28 +311,27 @@ let ProjectController = class ProjectController {
|
|
|
336
311
|
return table.toString();
|
|
337
312
|
}
|
|
338
313
|
async configSet(variables, name, global) {
|
|
339
|
-
if (
|
|
340
|
-
|
|
314
|
+
if (global) {
|
|
315
|
+
for (const variable of variables) {
|
|
316
|
+
const [key, value] = variable.split("=");
|
|
317
|
+
if (!value) {
|
|
318
|
+
console.info(yoctocolors_cjs_1.default.yellow(`No value for "${key}"`));
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
this.appConfigService.config.setEnv(key.trim(), value.trim());
|
|
322
|
+
}
|
|
323
|
+
return;
|
|
341
324
|
}
|
|
342
|
-
const
|
|
343
|
-
? this.appConfigService.getConfig()
|
|
344
|
-
: this.projectService.get();
|
|
325
|
+
const project = this.projectService.get(name);
|
|
345
326
|
for (const variable of variables) {
|
|
346
327
|
const [key, value] = variable.split("=");
|
|
347
328
|
if (!value) {
|
|
348
329
|
console.info(yoctocolors_cjs_1.default.yellow(`No value for "${key}"`));
|
|
349
330
|
continue;
|
|
350
331
|
}
|
|
351
|
-
|
|
352
|
-
}
|
|
353
|
-
await config.save();
|
|
354
|
-
if (!global) {
|
|
355
|
-
const project = this.projectService.get();
|
|
356
|
-
const container = await this.dockerService.getContainer(project.containerName);
|
|
357
|
-
if (container) {
|
|
358
|
-
await this.projectService.start(project, true);
|
|
359
|
-
}
|
|
332
|
+
project.setEnv(key, value);
|
|
360
333
|
}
|
|
334
|
+
project.save();
|
|
361
335
|
}
|
|
362
336
|
async configUnset(configs, name, global) {
|
|
363
337
|
const env = configs.reduce((env, config) => {
|
|
@@ -368,27 +342,14 @@ let ProjectController = class ProjectController {
|
|
|
368
342
|
if (global) {
|
|
369
343
|
return;
|
|
370
344
|
}
|
|
371
|
-
|
|
372
|
-
this.projectService.cdProject(name);
|
|
373
|
-
}
|
|
374
|
-
const project = this.projectService.get();
|
|
345
|
+
const project = this.projectService.get(name);
|
|
375
346
|
for (const i in env) {
|
|
376
347
|
project.unsetEnv(i);
|
|
377
348
|
}
|
|
378
|
-
|
|
379
|
-
if (!global) {
|
|
380
|
-
const project = this.projectService.get();
|
|
381
|
-
const container = await this.dockerService.getContainer(project.containerName);
|
|
382
|
-
if (container) {
|
|
383
|
-
await this.projectService.start(project, true);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
349
|
+
project.save();
|
|
386
350
|
}
|
|
387
351
|
async buildArgsList(name) {
|
|
388
|
-
|
|
389
|
-
this.projectService.cdProject(name);
|
|
390
|
-
}
|
|
391
|
-
const project = this.projectService.get();
|
|
352
|
+
const project = this.projectService.get(name);
|
|
392
353
|
const table = new cli_table3_1.default({
|
|
393
354
|
head: ["KEY", "VALUE"]
|
|
394
355
|
});
|
|
@@ -399,10 +360,7 @@ let ProjectController = class ProjectController {
|
|
|
399
360
|
return table.toString();
|
|
400
361
|
}
|
|
401
362
|
async buildArgsGet(args, name) {
|
|
402
|
-
|
|
403
|
-
this.projectService.cdProject(name);
|
|
404
|
-
}
|
|
405
|
-
const project = this.projectService.get();
|
|
363
|
+
const project = this.projectService.get(name);
|
|
406
364
|
const table = new cli_table3_1.default({
|
|
407
365
|
head: ["KEY", "VALUE"]
|
|
408
366
|
});
|
|
@@ -414,11 +372,8 @@ let ProjectController = class ProjectController {
|
|
|
414
372
|
}
|
|
415
373
|
return table.toString();
|
|
416
374
|
}
|
|
417
|
-
async buildArgsSet(
|
|
418
|
-
|
|
419
|
-
this.projectService.cdProject(name);
|
|
420
|
-
}
|
|
421
|
-
const project = this.projectService.get();
|
|
375
|
+
async buildArgsSet(args, name) {
|
|
376
|
+
const project = this.projectService.get(name);
|
|
422
377
|
const buildArgs = args.reduce((env, config) => {
|
|
423
378
|
let [, key = "", value = ""] = config.split(/^([^=]+)=(.*)$/);
|
|
424
379
|
key = key.trim();
|
|
@@ -434,13 +389,10 @@ let ProjectController = class ProjectController {
|
|
|
434
389
|
}
|
|
435
390
|
project.buildArgs[key] = buildArgs[key];
|
|
436
391
|
}
|
|
437
|
-
|
|
392
|
+
project.save();
|
|
438
393
|
}
|
|
439
394
|
async buildArgsUnset(args, name) {
|
|
440
|
-
|
|
441
|
-
this.projectService.cdProject(name);
|
|
442
|
-
}
|
|
443
|
-
const project = this.projectService.get();
|
|
395
|
+
const project = this.projectService.get(name);
|
|
444
396
|
const buildArgs = args.reduce((env, config) => {
|
|
445
397
|
let [, key = "", value = ""] = config.split(/^([^=]+)(?:=(.*))?$/);
|
|
446
398
|
key = key.trim();
|
|
@@ -456,13 +408,10 @@ let ProjectController = class ProjectController {
|
|
|
456
408
|
delete project.buildArgs[key];
|
|
457
409
|
}
|
|
458
410
|
}
|
|
459
|
-
|
|
411
|
+
project.save();
|
|
460
412
|
}
|
|
461
413
|
async volumeList(name) {
|
|
462
|
-
|
|
463
|
-
this.projectService.cdProject(name);
|
|
464
|
-
}
|
|
465
|
-
const project = this.projectService.get();
|
|
414
|
+
const project = this.projectService.get(name);
|
|
466
415
|
const table = new cli_table3_1.default({
|
|
467
416
|
head: ["Volume"]
|
|
468
417
|
});
|
|
@@ -473,30 +422,21 @@ let ProjectController = class ProjectController {
|
|
|
473
422
|
return table.toString();
|
|
474
423
|
}
|
|
475
424
|
async volumeMount(volumes, name) {
|
|
476
|
-
|
|
477
|
-
this.projectService.cdProject(name);
|
|
478
|
-
}
|
|
479
|
-
const project = this.projectService.get();
|
|
425
|
+
const project = this.projectService.get(name);
|
|
480
426
|
if (Array.isArray(volumes) && volumes.length > 0) {
|
|
481
427
|
project.volumeMount(...volumes);
|
|
482
|
-
|
|
428
|
+
project.save();
|
|
483
429
|
}
|
|
484
430
|
}
|
|
485
431
|
async volumeUnmount(volumes, name) {
|
|
486
|
-
|
|
487
|
-
this.projectService.cdProject(name);
|
|
488
|
-
}
|
|
489
|
-
const project = this.projectService.get();
|
|
432
|
+
const project = this.projectService.get(name);
|
|
490
433
|
if (Array.isArray(volumes) && volumes.length > 0) {
|
|
491
434
|
project.volumeUnmount(...volumes);
|
|
492
|
-
|
|
435
|
+
project.save();
|
|
493
436
|
}
|
|
494
437
|
}
|
|
495
438
|
async extraHostList(name) {
|
|
496
|
-
|
|
497
|
-
this.projectService.cdProject(name);
|
|
498
|
-
}
|
|
499
|
-
const project = this.projectService.get();
|
|
439
|
+
const project = this.projectService.get(name);
|
|
500
440
|
if (!project.extraHosts) {
|
|
501
441
|
return "No extra hosts found";
|
|
502
442
|
}
|
|
@@ -511,40 +451,25 @@ let ProjectController = class ProjectController {
|
|
|
511
451
|
return table.toString();
|
|
512
452
|
}
|
|
513
453
|
async addExtraHost(extraHost, extraDomain, name) {
|
|
514
|
-
|
|
515
|
-
this.projectService.cdProject(name);
|
|
516
|
-
}
|
|
517
|
-
const project = this.projectService.get();
|
|
454
|
+
const project = this.projectService.get(name);
|
|
518
455
|
project.addExtraHost(extraHost, extraDomain);
|
|
519
|
-
|
|
456
|
+
project.save();
|
|
520
457
|
}
|
|
521
458
|
async removeExtraHost(extraHost, name) {
|
|
522
|
-
|
|
523
|
-
this.projectService.cdProject(name);
|
|
524
|
-
}
|
|
525
|
-
const project = this.projectService.get();
|
|
459
|
+
const project = this.projectService.get(name);
|
|
526
460
|
project.removeExtraHost(extraHost);
|
|
527
|
-
|
|
461
|
+
project.save();
|
|
528
462
|
}
|
|
529
463
|
async attach(name) {
|
|
530
|
-
|
|
531
|
-
this.projectService.cdProject(name);
|
|
532
|
-
}
|
|
533
|
-
const project = this.projectService.get();
|
|
464
|
+
const project = this.projectService.get(name);
|
|
534
465
|
await this.dockerService.attach(project.containerName);
|
|
535
466
|
}
|
|
536
467
|
async exec(command, name) {
|
|
537
|
-
|
|
538
|
-
this.projectService.cdProject(name);
|
|
539
|
-
}
|
|
540
|
-
const project = this.projectService.get();
|
|
468
|
+
const project = this.projectService.get(name);
|
|
541
469
|
await this.dockerService.exec(project.containerName, command, true);
|
|
542
470
|
}
|
|
543
471
|
async run(script, args, name) {
|
|
544
|
-
|
|
545
|
-
this.projectService.cdProject(name);
|
|
546
|
-
}
|
|
547
|
-
const project = this.projectService.get();
|
|
472
|
+
const project = this.projectService.get(name);
|
|
548
473
|
if (!project.scripts || !project.scripts[script]) {
|
|
549
474
|
throw new Error(`Script ${script} not found`);
|
|
550
475
|
}
|
|
@@ -571,7 +496,6 @@ let ProjectController = class ProjectController {
|
|
|
571
496
|
if (clear) {
|
|
572
497
|
this.logService.clear();
|
|
573
498
|
}
|
|
574
|
-
const logFilepath = this.appConfigService.dataPath("ws.log");
|
|
575
499
|
const prepareLog = (str) => {
|
|
576
500
|
return str.replace(/^\[.*]\s([^:]+):\s.*$/gm, (substring, type) => {
|
|
577
501
|
switch (type) {
|
|
@@ -591,26 +515,29 @@ let ProjectController = class ProjectController {
|
|
|
591
515
|
}
|
|
592
516
|
});
|
|
593
517
|
};
|
|
594
|
-
const
|
|
595
|
-
stream.
|
|
596
|
-
|
|
518
|
+
const file = this.appConfigService.fs.open("ws.log", "r");
|
|
519
|
+
const stream = file.createReadlineStream({
|
|
520
|
+
start: -10
|
|
521
|
+
});
|
|
522
|
+
stream.on("data", (line) => {
|
|
523
|
+
process.stdout.write(prepareLog(line));
|
|
597
524
|
process.stdout.write("\n");
|
|
598
525
|
});
|
|
599
526
|
if (follow) {
|
|
600
|
-
const stats =
|
|
601
|
-
const watcher =
|
|
527
|
+
const stats = file.stat();
|
|
528
|
+
const watcher = this.appConfigService.fs.watch("ws.log");
|
|
602
529
|
const mutex = new async_mutex_1.Mutex();
|
|
603
|
-
let position =
|
|
530
|
+
let position = stats.size;
|
|
604
531
|
watcher.on("change", async () => {
|
|
605
532
|
await mutex.acquire();
|
|
606
533
|
try {
|
|
607
|
-
const stats =
|
|
608
|
-
if (
|
|
534
|
+
const stats = file.stat();
|
|
535
|
+
if (stats.size < position) {
|
|
609
536
|
console.info("file truncated");
|
|
610
|
-
position =
|
|
537
|
+
position = 0;
|
|
611
538
|
}
|
|
612
|
-
const buffer =
|
|
613
|
-
position +=
|
|
539
|
+
const buffer = file.readBytes(position);
|
|
540
|
+
position += buffer.length;
|
|
614
541
|
process.stdout.write(prepareLog(buffer.toString("utf-8")));
|
|
615
542
|
}
|
|
616
543
|
finally {
|
|
@@ -620,10 +547,8 @@ let ProjectController = class ProjectController {
|
|
|
620
547
|
}
|
|
621
548
|
return;
|
|
622
549
|
}
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
}
|
|
626
|
-
await this.projectService.logs(detach);
|
|
550
|
+
const project = this.projectService.get(name);
|
|
551
|
+
await this.projectService.logs(project, detach);
|
|
627
552
|
}
|
|
628
553
|
};
|
|
629
554
|
exports.ProjectController = ProjectController;
|
|
@@ -676,51 +601,6 @@ __decorate([
|
|
|
676
601
|
__metadata("design:paramtypes", [Boolean]),
|
|
677
602
|
__metadata("design:returntype", Promise)
|
|
678
603
|
], ProjectController.prototype, "projectList", null);
|
|
679
|
-
__decorate([
|
|
680
|
-
(0, core_1.Command)("start"),
|
|
681
|
-
(0, core_1.Description)("Starting project"),
|
|
682
|
-
__param(0, (0, core_1.Option)("name", {
|
|
683
|
-
type: "string",
|
|
684
|
-
alias: "n",
|
|
685
|
-
description: "The name of the project",
|
|
686
|
-
help: true
|
|
687
|
-
})),
|
|
688
|
-
__param(1, (0, core_1.Option)("detach", {
|
|
689
|
-
type: "boolean",
|
|
690
|
-
description: "Detach",
|
|
691
|
-
alias: "d"
|
|
692
|
-
})),
|
|
693
|
-
__param(2, (0, core_1.Option)("attach", {
|
|
694
|
-
type: "boolean",
|
|
695
|
-
description: "Attach",
|
|
696
|
-
alias: "a"
|
|
697
|
-
})),
|
|
698
|
-
__param(3, (0, core_1.Option)("build", {
|
|
699
|
-
type: "boolean",
|
|
700
|
-
description: "Build",
|
|
701
|
-
alias: "b"
|
|
702
|
-
})),
|
|
703
|
-
__param(4, (0, core_1.Option)("restart", {
|
|
704
|
-
type: "boolean",
|
|
705
|
-
alias: "r",
|
|
706
|
-
description: "Restart"
|
|
707
|
-
})),
|
|
708
|
-
__metadata("design:type", Function),
|
|
709
|
-
__metadata("design:paramtypes", [String, Boolean, Boolean, Boolean, Boolean]),
|
|
710
|
-
__metadata("design:returntype", Promise)
|
|
711
|
-
], ProjectController.prototype, "start", null);
|
|
712
|
-
__decorate([
|
|
713
|
-
(0, core_1.Command)("stop"),
|
|
714
|
-
(0, core_1.Description)("Stopping project"),
|
|
715
|
-
__param(0, (0, core_1.Option)("name", {
|
|
716
|
-
type: "string",
|
|
717
|
-
alias: "n",
|
|
718
|
-
description: "The name of the project"
|
|
719
|
-
})),
|
|
720
|
-
__metadata("design:type", Function),
|
|
721
|
-
__metadata("design:paramtypes", [String]),
|
|
722
|
-
__metadata("design:returntype", Promise)
|
|
723
|
-
], ProjectController.prototype, "stop", null);
|
|
724
604
|
__decorate([
|
|
725
605
|
(0, core_1.Command)("domains"),
|
|
726
606
|
(0, core_1.Description)("Project domain list"),
|
|
@@ -921,13 +801,14 @@ __decorate([
|
|
|
921
801
|
], ProjectController.prototype, "buildArgsGet", null);
|
|
922
802
|
__decorate([
|
|
923
803
|
(0, core_1.Command)("build-args:set [...buildArgs]"),
|
|
924
|
-
__param(0, (0, core_1.
|
|
804
|
+
__param(0, (0, core_1.Param)("buildArgs")),
|
|
805
|
+
__param(1, (0, core_1.Option)("name", {
|
|
925
806
|
type: "string",
|
|
926
807
|
alias: "n",
|
|
927
808
|
description: "The name of the project"
|
|
928
809
|
})),
|
|
929
810
|
__metadata("design:type", Function),
|
|
930
|
-
__metadata("design:paramtypes", [
|
|
811
|
+
__metadata("design:paramtypes", [Array, String]),
|
|
931
812
|
__metadata("design:returntype", Promise)
|
|
932
813
|
], ProjectController.prototype, "buildArgsSet", null);
|
|
933
814
|
__decorate([
|
|
@@ -1073,7 +954,7 @@ __decorate([
|
|
|
1073
954
|
type: "boolean",
|
|
1074
955
|
alias: "f"
|
|
1075
956
|
})),
|
|
1076
|
-
__param(4, (0, core_1.Option)("clear",
|
|
957
|
+
__param(4, (0, core_1.Option)("clear", "c")),
|
|
1077
958
|
__metadata("design:type", Function),
|
|
1078
959
|
__metadata("design:paramtypes", [String, Boolean, Boolean, Boolean, Boolean]),
|
|
1079
960
|
__metadata("design:returntype", Promise)
|
|
@@ -1081,9 +962,11 @@ __decorate([
|
|
|
1081
962
|
exports.ProjectController = ProjectController = __decorate([
|
|
1082
963
|
(0, core_1.Controller)(),
|
|
1083
964
|
(0, core_1.Description)("Project commands"),
|
|
1084
|
-
__metadata("design:paramtypes", [
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
965
|
+
__metadata("design:paramtypes", [core_1.AppConfigService,
|
|
966
|
+
core_1.ProcessService,
|
|
967
|
+
core_1.EventService,
|
|
968
|
+
project_1.ProjectService,
|
|
969
|
+
project_1.ProjectRepository,
|
|
970
|
+
core_1.LogService,
|
|
971
|
+
docker_1.DockerService])
|
|
1089
972
|
], ProjectController);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
export * from "./CertController";
|
|
2
1
|
export * from "./CompletionController";
|
|
3
2
|
export * from "./DebugController";
|
|
4
|
-
export * from "./
|
|
3
|
+
export * from "./ExperimentalController";
|
|
5
4
|
export * from "./PluginController";
|
|
6
|
-
export * from "./PresetController";
|
|
7
5
|
export * from "./ProjectController";
|
|
8
|
-
export * from "./ProxyController";
|
package/lib/controllers/index.js
CHANGED
|
@@ -14,11 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./CertController"), exports);
|
|
18
17
|
__exportStar(require("./CompletionController"), exports);
|
|
19
18
|
__exportStar(require("./DebugController"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
19
|
+
__exportStar(require("./ExperimentalController"), exports);
|
|
21
20
|
__exportStar(require("./PluginController"), exports);
|
|
22
|
-
__exportStar(require("./PresetController"), exports);
|
|
23
21
|
__exportStar(require("./ProjectController"), exports);
|
|
24
|
-
__exportStar(require("./ProxyController"), exports);
|