gazill 2.1.0 → 2.3.0
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/dist/commands/autoscale.d.ts +5 -0
- package/dist/commands/autoscale.d.ts.map +1 -0
- package/dist/commands/autoscale.js +140 -0
- package/dist/commands/autoscale.js.map +1 -0
- package/dist/commands/blob.d.ts +19 -0
- package/dist/commands/blob.d.ts.map +1 -0
- package/dist/commands/blob.js +383 -0
- package/dist/commands/blob.js.map +1 -0
- package/dist/commands/cron.d.ts +27 -0
- package/dist/commands/cron.d.ts.map +1 -0
- package/dist/commands/cron.js +333 -0
- package/dist/commands/cron.js.map +1 -0
- package/dist/commands/db.d.ts +21 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +567 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/domains.d.ts +5 -0
- package/dist/commands/domains.d.ts.map +1 -0
- package/dist/commands/domains.js +239 -0
- package/dist/commands/domains.js.map +1 -0
- package/dist/commands/env.d.ts +4 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +180 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/health.d.ts +7 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +189 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/limits.d.ts +2 -0
- package/dist/commands/limits.d.ts.map +1 -0
- package/dist/commands/limits.js +186 -0
- package/dist/commands/limits.js.map +1 -0
- package/dist/commands/mysql.d.ts +15 -0
- package/dist/commands/mysql.d.ts.map +1 -0
- package/dist/commands/mysql.js +413 -0
- package/dist/commands/mysql.js.map +1 -0
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +29 -3
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/promote.d.ts.map +1 -1
- package/dist/commands/promote.js +36 -9
- package/dist/commands/promote.js.map +1 -1
- package/dist/commands/redis.d.ts +15 -0
- package/dist/commands/redis.d.ts.map +1 -0
- package/dist/commands/redis.js +402 -0
- package/dist/commands/redis.js.map +1 -0
- package/dist/commands/rollback.d.ts +9 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +154 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +24 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +20 -11
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/worker.d.ts +31 -0
- package/dist/commands/worker.d.ts.map +1 -0
- package/dist/commands/worker.js +380 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/index.js +362 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +46 -2
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +16 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/shared/constants.d.ts +10 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +11 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +40 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
|
+
import { getAuth, getApiUrl } from '../lib/config.js';
|
|
5
|
+
import { listProjects } from '../lib/api.js';
|
|
6
|
+
// API helper for worker routes
|
|
7
|
+
async function workerApiRequest(endpoint, options = { method: 'GET' }) {
|
|
8
|
+
const apiUrl = await getApiUrl();
|
|
9
|
+
const auth = await getAuth();
|
|
10
|
+
if (!auth?.token) {
|
|
11
|
+
throw new Error('Not authenticated');
|
|
12
|
+
}
|
|
13
|
+
const headers = {
|
|
14
|
+
'Content-Type': 'application/json',
|
|
15
|
+
Authorization: `Bearer ${auth.token}`,
|
|
16
|
+
};
|
|
17
|
+
const response = await fetch(`${apiUrl}${endpoint}`, {
|
|
18
|
+
method: options.method,
|
|
19
|
+
headers,
|
|
20
|
+
body: options.body ? JSON.stringify(options.body) : undefined,
|
|
21
|
+
});
|
|
22
|
+
const data = await response.json();
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(data.message || 'Request failed');
|
|
25
|
+
}
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
// Get current project ID from .gazill file
|
|
29
|
+
async function getProjectId() {
|
|
30
|
+
try {
|
|
31
|
+
const content = await fs.readFile('.gazill', 'utf-8');
|
|
32
|
+
const data = JSON.parse(content);
|
|
33
|
+
return data.projectId || null;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Find project by name
|
|
40
|
+
async function findProjectByName(name) {
|
|
41
|
+
const response = await listProjects();
|
|
42
|
+
return response.projects.find((p) => p.name === name) || null;
|
|
43
|
+
}
|
|
44
|
+
// Format uptime
|
|
45
|
+
function formatUptime(startedAt) {
|
|
46
|
+
if (!startedAt)
|
|
47
|
+
return '-';
|
|
48
|
+
const start = new Date(startedAt).getTime();
|
|
49
|
+
const now = Date.now();
|
|
50
|
+
const diffMs = now - start;
|
|
51
|
+
const seconds = Math.floor(diffMs / 1000);
|
|
52
|
+
const minutes = Math.floor(seconds / 60);
|
|
53
|
+
const hours = Math.floor(minutes / 60);
|
|
54
|
+
const days = Math.floor(hours / 24);
|
|
55
|
+
if (days > 0)
|
|
56
|
+
return `${days}d ${hours % 24}h`;
|
|
57
|
+
if (hours > 0)
|
|
58
|
+
return `${hours}h ${minutes % 60}m`;
|
|
59
|
+
if (minutes > 0)
|
|
60
|
+
return `${minutes}m ${seconds % 60}s`;
|
|
61
|
+
return `${seconds}s`;
|
|
62
|
+
}
|
|
63
|
+
// gazill worker list [project] --env <environment>
|
|
64
|
+
export async function workerListCommand(projectName, options) {
|
|
65
|
+
const auth = await getAuth();
|
|
66
|
+
if (!auth?.token) {
|
|
67
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const spinner = ora('Fetching workers...').start();
|
|
71
|
+
try {
|
|
72
|
+
let projectId = await getProjectId();
|
|
73
|
+
if (!projectId && !projectName) {
|
|
74
|
+
spinner.stop();
|
|
75
|
+
console.log(chalk.red('No project specified. Run from a project directory or specify project name.'));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (projectName) {
|
|
79
|
+
const project = await findProjectByName(projectName);
|
|
80
|
+
if (!project) {
|
|
81
|
+
spinner.fail(`Project "${projectName}" not found.`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
projectId = project.id;
|
|
85
|
+
}
|
|
86
|
+
const env = options?.env || 'development';
|
|
87
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
88
|
+
spinner.stop();
|
|
89
|
+
if (response.workers.length === 0) {
|
|
90
|
+
console.log(chalk.yellow(`No workers found for ${env} environment.`));
|
|
91
|
+
console.log(chalk.gray('Use `gazill worker create <name> --command "node worker.js"` to create a worker.'));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
console.log(chalk.bold(`\nWorkers (${env}):\n`));
|
|
95
|
+
for (const worker of response.workers) {
|
|
96
|
+
const status = worker.status === 'running' ? chalk.green('●') :
|
|
97
|
+
worker.status === 'error' ? chalk.red('●') :
|
|
98
|
+
chalk.gray('○');
|
|
99
|
+
const statusText = worker.status === 'running' ? chalk.green('running') :
|
|
100
|
+
worker.status === 'error' ? chalk.red('error') :
|
|
101
|
+
chalk.gray('stopped');
|
|
102
|
+
console.log(` ${status} ${chalk.cyan(worker.name)} (${statusText})`);
|
|
103
|
+
console.log(` Command: ${chalk.gray(worker.command)}`);
|
|
104
|
+
console.log(` Restart: ${worker.restartPolicy} (${worker.restartCount}/${worker.maxRestarts})`);
|
|
105
|
+
if (worker.status === 'running' && worker.lastStartedAt) {
|
|
106
|
+
console.log(` Uptime: ${formatUptime(worker.lastStartedAt)}`);
|
|
107
|
+
}
|
|
108
|
+
if (worker.errorMessage) {
|
|
109
|
+
console.log(` Error: ${chalk.red(worker.errorMessage)}`);
|
|
110
|
+
}
|
|
111
|
+
console.log();
|
|
112
|
+
}
|
|
113
|
+
console.log(chalk.gray(`Total: ${response.workers.length} worker(s)`));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
spinner.fail('Failed to fetch workers');
|
|
117
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// gazill worker create <name> --command --restart --env
|
|
121
|
+
export async function workerCreateCommand(name, options) {
|
|
122
|
+
const auth = await getAuth();
|
|
123
|
+
if (!auth?.token) {
|
|
124
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (!options?.command) {
|
|
128
|
+
console.log(chalk.red('Command is required. Use --command "node worker.js"'));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const spinner = ora('Creating worker...').start();
|
|
132
|
+
try {
|
|
133
|
+
const projectId = await getProjectId();
|
|
134
|
+
if (!projectId) {
|
|
135
|
+
spinner.stop();
|
|
136
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const body = {
|
|
140
|
+
name,
|
|
141
|
+
command: options.command,
|
|
142
|
+
environment: options.env || 'development',
|
|
143
|
+
};
|
|
144
|
+
if (options.restart) {
|
|
145
|
+
body.restartPolicy = options.restart;
|
|
146
|
+
}
|
|
147
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers`, { method: 'POST', body });
|
|
148
|
+
spinner.succeed(`Created worker '${chalk.cyan(response.worker.name)}'`);
|
|
149
|
+
console.log();
|
|
150
|
+
console.log(chalk.gray(' Command:'), response.worker.command);
|
|
151
|
+
console.log(chalk.gray(' Restart:'), response.worker.restartPolicy);
|
|
152
|
+
console.log(chalk.gray(' Status:'), chalk.gray('stopped'));
|
|
153
|
+
console.log();
|
|
154
|
+
console.log(chalk.gray('Use `gazill worker start ' + name + '` to start the worker.'));
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
spinner.fail('Failed to create worker');
|
|
158
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// gazill worker update <name> --command --restart --env
|
|
162
|
+
export async function workerUpdateCommand(name, options) {
|
|
163
|
+
const auth = await getAuth();
|
|
164
|
+
if (!auth?.token) {
|
|
165
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const spinner = ora('Updating worker...').start();
|
|
169
|
+
try {
|
|
170
|
+
const projectId = await getProjectId();
|
|
171
|
+
if (!projectId) {
|
|
172
|
+
spinner.stop();
|
|
173
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// Find worker by name
|
|
177
|
+
const env = options?.env || 'development';
|
|
178
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
179
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
180
|
+
if (!worker) {
|
|
181
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const body = {};
|
|
185
|
+
if (options?.command)
|
|
186
|
+
body.command = options.command;
|
|
187
|
+
if (options?.restart)
|
|
188
|
+
body.restartPolicy = options.restart;
|
|
189
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}`, { method: 'PATCH', body });
|
|
190
|
+
spinner.succeed(`Updated worker '${chalk.cyan(response.worker.name)}'`);
|
|
191
|
+
console.log(chalk.gray('Note: Worker was stopped. Use `gazill worker start ' + name + '` to restart.'));
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
spinner.fail('Failed to update worker');
|
|
195
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// gazill worker delete <name> --env
|
|
199
|
+
export async function workerDeleteCommand(name, options) {
|
|
200
|
+
const auth = await getAuth();
|
|
201
|
+
if (!auth?.token) {
|
|
202
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const spinner = ora('Deleting worker...').start();
|
|
206
|
+
try {
|
|
207
|
+
const projectId = await getProjectId();
|
|
208
|
+
if (!projectId) {
|
|
209
|
+
spinner.stop();
|
|
210
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
// Find worker by name
|
|
214
|
+
const env = options?.env || 'development';
|
|
215
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
216
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
217
|
+
if (!worker) {
|
|
218
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}`, { method: 'DELETE' });
|
|
222
|
+
spinner.succeed(`Deleted worker '${chalk.cyan(name)}'`);
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
spinner.fail('Failed to delete worker');
|
|
226
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// gazill worker start <name> --env
|
|
230
|
+
export async function workerStartCommand(name, options) {
|
|
231
|
+
const auth = await getAuth();
|
|
232
|
+
if (!auth?.token) {
|
|
233
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const spinner = ora(`Starting worker '${name}'...`).start();
|
|
237
|
+
try {
|
|
238
|
+
const projectId = await getProjectId();
|
|
239
|
+
if (!projectId) {
|
|
240
|
+
spinner.stop();
|
|
241
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Find worker by name
|
|
245
|
+
const env = options?.env || 'development';
|
|
246
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
247
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
248
|
+
if (!worker) {
|
|
249
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}/start`, { method: 'POST' });
|
|
253
|
+
spinner.succeed(`Started worker '${chalk.cyan(response.worker.name)}'`);
|
|
254
|
+
console.log(chalk.gray(' Container:'), response.worker.containerId?.substring(0, 12));
|
|
255
|
+
console.log(chalk.gray(' Status:'), chalk.green('running'));
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
spinner.fail('Failed to start worker');
|
|
259
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// gazill worker stop <name> --env
|
|
263
|
+
export async function workerStopCommand(name, options) {
|
|
264
|
+
const auth = await getAuth();
|
|
265
|
+
if (!auth?.token) {
|
|
266
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const spinner = ora(`Stopping worker '${name}'...`).start();
|
|
270
|
+
try {
|
|
271
|
+
const projectId = await getProjectId();
|
|
272
|
+
if (!projectId) {
|
|
273
|
+
spinner.stop();
|
|
274
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
// Find worker by name
|
|
278
|
+
const env = options?.env || 'development';
|
|
279
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
280
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
281
|
+
if (!worker) {
|
|
282
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}/stop`, { method: 'POST' });
|
|
286
|
+
spinner.succeed(`Stopped worker '${chalk.cyan(response.worker.name)}'`);
|
|
287
|
+
console.log(chalk.gray(' Status:'), chalk.gray('stopped'));
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
spinner.fail('Failed to stop worker');
|
|
291
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// gazill worker restart <name> --env
|
|
295
|
+
export async function workerRestartCommand(name, options) {
|
|
296
|
+
const auth = await getAuth();
|
|
297
|
+
if (!auth?.token) {
|
|
298
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const spinner = ora(`Restarting worker '${name}'...`).start();
|
|
302
|
+
try {
|
|
303
|
+
const projectId = await getProjectId();
|
|
304
|
+
if (!projectId) {
|
|
305
|
+
spinner.stop();
|
|
306
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
// Find worker by name
|
|
310
|
+
const env = options?.env || 'development';
|
|
311
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
312
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
313
|
+
if (!worker) {
|
|
314
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}/restart`, { method: 'POST' });
|
|
318
|
+
spinner.succeed(`Restarted worker '${chalk.cyan(response.worker.name)}'`);
|
|
319
|
+
console.log(chalk.gray(' Container:'), response.worker.containerId?.substring(0, 12));
|
|
320
|
+
console.log(chalk.gray(' Status:'), chalk.green('running'));
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
spinner.fail('Failed to restart worker');
|
|
324
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// gazill worker logs <name> --lines --follow --env
|
|
328
|
+
export async function workerLogsCommand(name, options) {
|
|
329
|
+
const auth = await getAuth();
|
|
330
|
+
if (!auth?.token) {
|
|
331
|
+
console.log(chalk.red('Not logged in. Run `gazill login` first.'));
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const spinner = ora('Fetching logs...').start();
|
|
335
|
+
try {
|
|
336
|
+
const projectId = await getProjectId();
|
|
337
|
+
if (!projectId) {
|
|
338
|
+
spinner.stop();
|
|
339
|
+
console.log(chalk.red('No project found. Run from a project directory.'));
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
// Find worker by name
|
|
343
|
+
const env = options?.env || 'development';
|
|
344
|
+
const listResponse = await workerApiRequest(`/api/projects/${projectId}/workers?environment=${env}`);
|
|
345
|
+
const worker = listResponse.workers.find(w => w.name === name);
|
|
346
|
+
if (!worker) {
|
|
347
|
+
spinner.fail(`Worker '${name}' not found in ${env} environment.`);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const lines = options?.lines || '100';
|
|
351
|
+
const response = await workerApiRequest(`/api/projects/${projectId}/workers/${worker.id}/logs?lines=${lines}`);
|
|
352
|
+
spinner.stop();
|
|
353
|
+
if (response.logs.length === 0) {
|
|
354
|
+
console.log(chalk.yellow('No logs available.'));
|
|
355
|
+
if (worker.status !== 'running') {
|
|
356
|
+
console.log(chalk.gray('Worker is not running. Start it with `gazill worker start ' + name + '`'));
|
|
357
|
+
}
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
// Print logs
|
|
361
|
+
for (const line of response.logs) {
|
|
362
|
+
// Docker logs have 8-byte header, try to clean it up
|
|
363
|
+
const cleanLine = line.replace(/^[\x00-\x1F]+/, '').trim();
|
|
364
|
+
if (cleanLine) {
|
|
365
|
+
console.log(cleanLine);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// Note: --follow is not implemented in this version
|
|
369
|
+
// Would require WebSocket or SSE connection
|
|
370
|
+
if (options?.follow) {
|
|
371
|
+
console.log();
|
|
372
|
+
console.log(chalk.yellow('Note: --follow is not yet supported. Showing recent logs only.'));
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
spinner.fail('Failed to fetch logs');
|
|
377
|
+
console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"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"}
|