@calltelemetry/cli 0.3.7 → 0.3.8
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/offline.d.ts.map +1 -1
- package/dist/commands/offline.js +78 -105
- package/dist/commands/offline.js.map +1 -1
- package/dist/commands/self-update.d.ts +2 -3
- package/dist/commands/self-update.d.ts.map +1 -1
- package/dist/commands/self-update.js +4 -49
- package/dist/commands/self-update.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +25 -87
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/auto-update.d.ts +15 -5
- package/dist/lib/auto-update.d.ts.map +1 -1
- package/dist/lib/auto-update.js +61 -25
- package/dist/lib/auto-update.js.map +1 -1
- package/dist/lib/bundle.d.ts.map +1 -1
- package/dist/lib/bundle.js +2 -9
- package/dist/lib/bundle.js.map +1 -1
- package/dist/lib/offline-steps.d.ts +33 -0
- package/dist/lib/offline-steps.d.ts.map +1 -0
- package/dist/lib/offline-steps.js +350 -0
- package/dist/lib/offline-steps.js.map +1 -0
- package/dist/lib/update-steps.d.ts +17 -0
- package/dist/lib/update-steps.d.ts.map +1 -0
- package/dist/lib/update-steps.js +169 -0
- package/dist/lib/update-steps.js.map +1 -0
- package/dist/ui/views/CertsStatusView.d.ts.map +1 -1
- package/dist/ui/views/CertsStatusView.js +19 -10
- package/dist/ui/views/CertsStatusView.js.map +1 -1
- package/dist/ui/views/DbBackupView.d.ts.map +1 -1
- package/dist/ui/views/DbBackupView.js +4 -2
- package/dist/ui/views/DbBackupView.js.map +1 -1
- package/dist/ui/views/DbStatusView.d.ts.map +1 -1
- package/dist/ui/views/DbStatusView.js +3 -2
- package/dist/ui/views/DbStatusView.js.map +1 -1
- package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
- package/dist/ui/views/DiagDatabaseView.js +12 -10
- package/dist/ui/views/DiagDatabaseView.js.map +1 -1
- package/dist/ui/views/DiagNetworkView.d.ts.map +1 -1
- package/dist/ui/views/DiagNetworkView.js +23 -14
- package/dist/ui/views/DiagNetworkView.js.map +1 -1
- package/dist/ui/views/DiagServiceView.d.ts.map +1 -1
- package/dist/ui/views/DiagServiceView.js +6 -5
- package/dist/ui/views/DiagServiceView.js.map +1 -1
- package/dist/ui/views/DockerStatusView.d.ts.map +1 -1
- package/dist/ui/views/DockerStatusView.js +5 -4
- package/dist/ui/views/DockerStatusView.js.map +1 -1
- package/dist/ui/views/MainMenu.d.ts.map +1 -1
- package/dist/ui/views/MainMenu.js +42 -3
- package/dist/ui/views/MainMenu.js.map +1 -1
- package/dist/ui/views/MigrateRunView.js +1 -1
- package/dist/ui/views/MigrateRunView.js.map +1 -1
- package/dist/ui/views/MigrateWatchView.d.ts.map +1 -1
- package/dist/ui/views/MigrateWatchView.js +2 -2
- package/dist/ui/views/MigrateWatchView.js.map +1 -1
- package/dist/ui/views/OfflineApplyView.d.ts +6 -0
- package/dist/ui/views/OfflineApplyView.d.ts.map +1 -0
- package/dist/ui/views/OfflineApplyView.js +109 -0
- package/dist/ui/views/OfflineApplyView.js.map +1 -0
- package/dist/ui/views/OfflineDownloadView.d.ts +6 -0
- package/dist/ui/views/OfflineDownloadView.d.ts.map +1 -0
- package/dist/ui/views/OfflineDownloadView.js +67 -0
- package/dist/ui/views/OfflineDownloadView.js.map +1 -0
- package/dist/ui/views/OfflineFetchView.d.ts +6 -0
- package/dist/ui/views/OfflineFetchView.d.ts.map +1 -0
- package/dist/ui/views/OfflineFetchView.js +64 -0
- package/dist/ui/views/OfflineFetchView.js.map +1 -0
- package/dist/ui/views/OfflineInspectView.d.ts +6 -0
- package/dist/ui/views/OfflineInspectView.d.ts.map +1 -0
- package/dist/ui/views/OfflineInspectView.js +65 -0
- package/dist/ui/views/OfflineInspectView.js.map +1 -0
- package/dist/ui/views/OfflineListView.d.ts.map +1 -1
- package/dist/ui/views/OfflineListView.js +2 -6
- package/dist/ui/views/OfflineListView.js.map +1 -1
- package/dist/ui/views/UpdateView.d.ts.map +1 -1
- package/dist/ui/views/UpdateView.js +20 -145
- package/dist/ui/views/UpdateView.js.map +1 -1
- package/package.json +4 -3
package/dist/lib/auto-update.js
CHANGED
|
@@ -1,58 +1,94 @@
|
|
|
1
1
|
import { execa } from 'execa';
|
|
2
2
|
import { debug } from './log.js';
|
|
3
|
+
import * as out from '../utils/output.js';
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
5
|
+
* Update the CLI via npm. Used for both interactive `ct self-update` and
|
|
6
|
+
* background auto-update. The `silent` option controls output:
|
|
6
7
|
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
8
|
+
* - silent=false (default): console.log output for interactive use
|
|
9
|
+
* - silent=true: debug() logging only, all errors swallowed
|
|
10
|
+
*
|
|
11
|
+
* Both modes: tries user-level install first, falls back to sudo on EACCES.
|
|
10
12
|
*/
|
|
11
|
-
export async function
|
|
13
|
+
export async function updateCli(currentVersion, opts = {}) {
|
|
14
|
+
const { silent = false } = opts;
|
|
15
|
+
const log = silent ? debug : (msg) => console.log(msg);
|
|
16
|
+
const logOk = silent ? debug : (msg) => out.ok(msg);
|
|
17
|
+
const logWarn = silent ? debug : (msg) => out.warn(msg);
|
|
12
18
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
log('Checking for CLI updates...');
|
|
20
|
+
// Check installed version vs registry
|
|
21
|
+
let local;
|
|
22
|
+
let latest;
|
|
23
|
+
try {
|
|
24
|
+
const { stdout: registryJson } = await execa('npm', ['view', '@calltelemetry/cli', 'version', '--json'], {
|
|
25
|
+
timeout: 10000,
|
|
26
|
+
});
|
|
27
|
+
latest = JSON.parse(registryJson);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
if (!silent) {
|
|
31
|
+
log('Installing latest CLI...');
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
debug(`Auto-update: check failed: ${err.message}`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
latest = 'unknown';
|
|
38
|
+
}
|
|
39
|
+
// Use currentVersion as the local version (more reliable than npm ls)
|
|
40
|
+
local = currentVersion;
|
|
41
|
+
if (latest !== 'unknown' && local === latest) {
|
|
42
|
+
logOk(`CLI is up to date (v${local})`);
|
|
20
43
|
return;
|
|
21
44
|
}
|
|
22
|
-
|
|
45
|
+
if (latest !== 'unknown') {
|
|
46
|
+
log(`Updating CLI: ${local ?? 'unknown'} → ${latest}...`);
|
|
47
|
+
}
|
|
23
48
|
// Try user-level install first
|
|
24
49
|
try {
|
|
25
50
|
await execa('npm', ['install', '-g', '@calltelemetry/cli'], {
|
|
26
51
|
timeout: 60000,
|
|
27
|
-
stdout: 'pipe',
|
|
28
|
-
stderr: 'pipe',
|
|
52
|
+
stdout: silent ? 'pipe' : 'inherit',
|
|
53
|
+
stderr: silent ? 'pipe' : 'inherit',
|
|
29
54
|
});
|
|
30
|
-
|
|
55
|
+
logOk('CLI updated successfully');
|
|
31
56
|
return;
|
|
32
57
|
}
|
|
33
58
|
catch (err) {
|
|
34
|
-
const isPermission = err.stderr?.includes('EACCES') || err.exitCode === 243;
|
|
59
|
+
const isPermission = err.stderr?.toString().includes('EACCES') || err.exitCode === 243;
|
|
35
60
|
if (!isPermission) {
|
|
36
|
-
|
|
61
|
+
logWarn('CLI self-update failed. You can update manually: npm install -g @calltelemetry/cli');
|
|
37
62
|
return;
|
|
38
63
|
}
|
|
39
|
-
|
|
64
|
+
if (silent)
|
|
65
|
+
debug('User install failed (EACCES), trying sudo...');
|
|
40
66
|
}
|
|
41
67
|
// Fallback to sudo
|
|
42
68
|
try {
|
|
43
69
|
await execa('sudo', ['npm', 'install', '-g', '@calltelemetry/cli'], {
|
|
44
70
|
timeout: 60000,
|
|
45
|
-
stdout: 'pipe',
|
|
46
|
-
stderr: 'pipe',
|
|
71
|
+
stdout: silent ? 'pipe' : 'inherit',
|
|
72
|
+
stderr: silent ? 'pipe' : 'inherit',
|
|
47
73
|
});
|
|
48
|
-
|
|
74
|
+
logOk('CLI updated successfully');
|
|
49
75
|
}
|
|
50
76
|
catch (err) {
|
|
51
|
-
|
|
77
|
+
logWarn('CLI self-update failed. You can update manually: sudo npm install -g @calltelemetry/cli');
|
|
52
78
|
}
|
|
53
79
|
}
|
|
54
80
|
catch (err) {
|
|
55
|
-
|
|
81
|
+
if (silent) {
|
|
82
|
+
debug(`Auto-update: check failed: ${err.message}`);
|
|
83
|
+
}
|
|
84
|
+
// Silent mode swallows all errors; interactive mode already handled above
|
|
56
85
|
}
|
|
57
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Background auto-update (silent). Kept as a convenience alias
|
|
89
|
+
* so existing callers don't need to change.
|
|
90
|
+
*/
|
|
91
|
+
export async function checkAndAutoUpdate(currentVersion) {
|
|
92
|
+
return updateCli(currentVersion, { silent: true });
|
|
93
|
+
}
|
|
58
94
|
//# sourceMappingURL=auto-update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/lib/auto-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/lib/auto-update.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"AAUA,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,GAAG,QAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjG;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBhE;AAgBD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHlG;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"AAUA,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,GAAG,QAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjG;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBhE;AAgBD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHlG;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAK1E;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBlF;AAED,sFAAsF;AACtF,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE,CAAC,CAkBD"}
|
package/dist/lib/bundle.js
CHANGED
|
@@ -180,16 +180,9 @@ export async function downloadBundle(version, options) {
|
|
|
180
180
|
}
|
|
181
181
|
export async function extractImages(composeFile) {
|
|
182
182
|
const { readFileSync } = await import('node:fs');
|
|
183
|
+
const { extractImageNames } = await import('./offline-steps.js');
|
|
183
184
|
const content = readFileSync(composeFile, 'utf-8');
|
|
184
|
-
|
|
185
|
-
for (const line of content.split('\n')) {
|
|
186
|
-
if (line.includes('image') && line.includes('calltelemetry')) {
|
|
187
|
-
const match = line.match(/image:\s*"?([^"\s]+)"?/);
|
|
188
|
-
if (match)
|
|
189
|
-
images.push(match[1]);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return images;
|
|
185
|
+
return extractImageNames(content, 'calltelemetry');
|
|
193
186
|
}
|
|
194
187
|
export async function checkImageAvailability(composeFile) {
|
|
195
188
|
const images = await extractImages(composeFile);
|
package/dist/lib/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { UpdateStep } from './update-steps.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extract image names from docker-compose.yml content.
|
|
4
|
+
* Single canonical regex — replaces 3 duplicated patterns across the codebase.
|
|
5
|
+
*
|
|
6
|
+
* @param filter - 'all' returns every image, 'calltelemetry' only calltelemetry images
|
|
7
|
+
*/
|
|
8
|
+
export declare function extractImageNames(content: string, filter?: 'all' | 'calltelemetry'): string[];
|
|
9
|
+
export interface BundleContents {
|
|
10
|
+
version: string | null;
|
|
11
|
+
configFiles: string[];
|
|
12
|
+
hasImages: boolean;
|
|
13
|
+
imageNames: string[];
|
|
14
|
+
sizeBytes: number;
|
|
15
|
+
sizeLabel: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validate a bundle file without extracting.
|
|
19
|
+
* Checks: file exists, is a valid tar.gz, disk space for extraction.
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateBundle(bundlePath: string): Promise<{
|
|
22
|
+
valid: boolean;
|
|
23
|
+
error?: string;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Inspect a bundle's contents without fully extracting.
|
|
27
|
+
* Uses tar listing + selective extract of docker-compose.yml only.
|
|
28
|
+
*/
|
|
29
|
+
export declare function inspectBundle(bundlePath: string): Promise<BundleContents>;
|
|
30
|
+
export declare function fetchSteps(version: string): UpdateStep[];
|
|
31
|
+
export declare function downloadSteps(version: string): UpdateStep[];
|
|
32
|
+
export declare function applySteps(bundlePath: string): UpdateStep[];
|
|
33
|
+
//# sourceMappingURL=offline-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline-steps.d.ts","sourceRoot":"","sources":["../../src/lib/offline-steps.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAIjE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,KAAK,GAAG,eAAuB,GAAG,MAAM,EAAE,CAUpG;AAID,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBpG;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+D/E;AAID,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAiCxD;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CA8E3D;AAID,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAsG3D"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared offline pipeline steps consumed by both the CLI (`commands/offline.ts`)
|
|
3
|
+
* and the TUI offline views. Keeps all offline logic in one place.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
6
|
+
import { copyFile, mkdir, rm } from 'node:fs/promises';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { getPaths } from './paths.js';
|
|
9
|
+
import { exec, execRetry } from './exec.js';
|
|
10
|
+
import { composeUp } from './compose.js';
|
|
11
|
+
import { downloadBundle } from './bundle.js';
|
|
12
|
+
import { checkDiskSpace } from './system.js';
|
|
13
|
+
import { debug } from './log.js';
|
|
14
|
+
import { formatBytes } from './system.js';
|
|
15
|
+
// ─── Canonical Image Regex ──────────────────────────────────────────────────
|
|
16
|
+
/**
|
|
17
|
+
* Extract image names from docker-compose.yml content.
|
|
18
|
+
* Single canonical regex — replaces 3 duplicated patterns across the codebase.
|
|
19
|
+
*
|
|
20
|
+
* @param filter - 'all' returns every image, 'calltelemetry' only calltelemetry images
|
|
21
|
+
*/
|
|
22
|
+
export function extractImageNames(content, filter = 'all') {
|
|
23
|
+
const images = [];
|
|
24
|
+
for (const line of content.split('\n')) {
|
|
25
|
+
const match = line.match(/image:\s*["']?([^\s"']+)["']?/);
|
|
26
|
+
if (match) {
|
|
27
|
+
if (filter === 'calltelemetry' && !line.includes('calltelemetry'))
|
|
28
|
+
continue;
|
|
29
|
+
images.push(match[1]);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return images;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validate a bundle file without extracting.
|
|
36
|
+
* Checks: file exists, is a valid tar.gz, disk space for extraction.
|
|
37
|
+
*/
|
|
38
|
+
export async function validateBundle(bundlePath) {
|
|
39
|
+
if (!existsSync(bundlePath)) {
|
|
40
|
+
return { valid: false, error: `Bundle file not found: ${bundlePath}` };
|
|
41
|
+
}
|
|
42
|
+
// Check it's a valid tar.gz
|
|
43
|
+
try {
|
|
44
|
+
await exec('tar', ['-tzf', bundlePath], { stdout: 'pipe', stderr: 'pipe' });
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return { valid: false, error: 'Bundle is not a valid tar.gz archive' };
|
|
48
|
+
}
|
|
49
|
+
// Check disk space (need at least 2x bundle size for extraction)
|
|
50
|
+
const bundleSize = statSync(bundlePath).size;
|
|
51
|
+
const { installDir } = getPaths();
|
|
52
|
+
const disk = await checkDiskSpace(installDir);
|
|
53
|
+
if (!disk.ok) {
|
|
54
|
+
return { valid: false, error: `Low disk space: ${disk.freePercent}% free (need 10%+)` };
|
|
55
|
+
}
|
|
56
|
+
return { valid: true };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Inspect a bundle's contents without fully extracting.
|
|
60
|
+
* Uses tar listing + selective extract of docker-compose.yml only.
|
|
61
|
+
*/
|
|
62
|
+
export async function inspectBundle(bundlePath) {
|
|
63
|
+
const sizeBytes = statSync(bundlePath).size;
|
|
64
|
+
// List tar contents
|
|
65
|
+
const result = await exec('tar', ['-tzf', bundlePath], {
|
|
66
|
+
stdout: 'pipe',
|
|
67
|
+
stderr: 'pipe',
|
|
68
|
+
});
|
|
69
|
+
const entries = String(result.stdout ?? '').split('\n').filter(Boolean);
|
|
70
|
+
// Normalize paths (strip leading directory component to match --strip-components=1)
|
|
71
|
+
const normalized = entries.map((e) => {
|
|
72
|
+
const parts = e.split('/');
|
|
73
|
+
return parts.length > 1 ? parts.slice(1).join('/') : e;
|
|
74
|
+
}).filter(Boolean);
|
|
75
|
+
// Identify config files
|
|
76
|
+
const knownConfigs = ['docker-compose.yml', 'Caddyfile', 'cli.sh', 'nats.conf'];
|
|
77
|
+
const configFiles = knownConfigs.filter(f => normalized.some((n) => n === f || n.endsWith(`/${f}`)));
|
|
78
|
+
// Check for images.tar
|
|
79
|
+
const hasImages = normalized.some((n) => n === 'images.tar');
|
|
80
|
+
// Extract version from bundle filename
|
|
81
|
+
const versionMatch = bundlePath.match(/calltelemetry-(?:bundle|offline)-([^\s/]+?)\.tar\.gz$/);
|
|
82
|
+
const version = versionMatch ? versionMatch[1] : null;
|
|
83
|
+
// Try to extract docker-compose.yml to parse image names
|
|
84
|
+
let imageNames = [];
|
|
85
|
+
if (configFiles.includes('docker-compose.yml')) {
|
|
86
|
+
const tmpDir = `/tmp/ct-inspect-${process.pid}`;
|
|
87
|
+
try {
|
|
88
|
+
await mkdir(tmpDir, { recursive: true });
|
|
89
|
+
// Extract just docker-compose.yml
|
|
90
|
+
await exec('tar', ['-xzf', bundlePath, '-C', tmpDir, '--strip-components=1',
|
|
91
|
+
'--include=*/docker-compose.yml', '--include=docker-compose.yml'], {
|
|
92
|
+
stdout: 'pipe',
|
|
93
|
+
stderr: 'pipe',
|
|
94
|
+
});
|
|
95
|
+
const composePath = join(tmpDir, 'docker-compose.yml');
|
|
96
|
+
if (existsSync(composePath)) {
|
|
97
|
+
const content = readFileSync(composePath, 'utf-8');
|
|
98
|
+
imageNames = extractImageNames(content, 'all');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
debug('Could not extract docker-compose.yml for inspection');
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
await rm(tmpDir, { recursive: true, force: true });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Check for prometheus/grafana dirs
|
|
109
|
+
if (normalized.some((n) => n.startsWith('prometheus/')))
|
|
110
|
+
configFiles.push('prometheus/');
|
|
111
|
+
if (normalized.some((n) => n.startsWith('grafana/')))
|
|
112
|
+
configFiles.push('grafana/');
|
|
113
|
+
return {
|
|
114
|
+
version,
|
|
115
|
+
configFiles,
|
|
116
|
+
hasImages,
|
|
117
|
+
imageNames,
|
|
118
|
+
sizeBytes,
|
|
119
|
+
sizeLabel: formatBytes(sizeBytes),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// ─── Fetch Steps (config-only bundle) ───────────────────────────────────────
|
|
123
|
+
export function fetchSteps(version) {
|
|
124
|
+
return [
|
|
125
|
+
{
|
|
126
|
+
label: 'Download config bundle',
|
|
127
|
+
run: async (ctx) => {
|
|
128
|
+
const { gcsBundleBaseUrl } = getPaths();
|
|
129
|
+
ctx?.log(`Downloading from ${gcsBundleBaseUrl}/${version}/`);
|
|
130
|
+
await downloadBundle(version, { quiet: true });
|
|
131
|
+
ctx?.log('Extracted docker-compose.yml, configs, and supporting files');
|
|
132
|
+
return version;
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
label: 'Verify checksum',
|
|
137
|
+
run: async (ctx) => {
|
|
138
|
+
const { gcsBundleBaseUrl, installDir } = getPaths();
|
|
139
|
+
const bundleFile = `calltelemetry-bundle-${version}.tar.gz`;
|
|
140
|
+
const checksumUrl = `${gcsBundleBaseUrl}/${version}/${bundleFile}.sha256`;
|
|
141
|
+
try {
|
|
142
|
+
await execRetry('curl', ['-sfL', checksumUrl, '-o', `${bundleFile}.sha256`], {
|
|
143
|
+
cwd: installDir,
|
|
144
|
+
});
|
|
145
|
+
await exec('sha256sum', ['-c', `${bundleFile}.sha256`], { cwd: installDir });
|
|
146
|
+
ctx?.log('SHA256 checksum verified');
|
|
147
|
+
await rm(join(installDir, `${bundleFile}.sha256`), { force: true });
|
|
148
|
+
return 'verified';
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
ctx?.log('Checksum not available — skipped');
|
|
152
|
+
return 'skipped';
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
}
|
|
158
|
+
// ─── Download Steps (full offline bundle with Docker images) ────────────────
|
|
159
|
+
export function downloadSteps(version) {
|
|
160
|
+
const configBundle = `calltelemetry-bundle-${version}.tar.gz`;
|
|
161
|
+
const bundleDir = `calltelemetry-offline-${version}`;
|
|
162
|
+
const bundleName = `calltelemetry-offline-${version}.tar.gz`;
|
|
163
|
+
return [
|
|
164
|
+
{
|
|
165
|
+
label: 'Download config bundle',
|
|
166
|
+
run: async (ctx) => {
|
|
167
|
+
const { gcsBundleBaseUrl } = getPaths();
|
|
168
|
+
const bundleUrl = `${gcsBundleBaseUrl}/${version}/${configBundle}`;
|
|
169
|
+
ctx?.log(`Downloading from ${bundleUrl}`);
|
|
170
|
+
await execRetry('curl', ['-fsSL', bundleUrl, '-o', configBundle], {
|
|
171
|
+
retries: 2,
|
|
172
|
+
retryDelay: 3000,
|
|
173
|
+
});
|
|
174
|
+
return 'downloaded';
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
label: 'Extract config bundle',
|
|
179
|
+
run: async (ctx) => {
|
|
180
|
+
await rm(bundleDir, { recursive: true, force: true });
|
|
181
|
+
await mkdir(bundleDir, { recursive: true });
|
|
182
|
+
await exec('tar', ['-xzf', configBundle, '-C', bundleDir, '--strip-components=1']);
|
|
183
|
+
await rm(configBundle, { force: true });
|
|
184
|
+
ctx?.log(`Extracted to ${bundleDir}/`);
|
|
185
|
+
return 'extracted';
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
label: 'Pull Docker images',
|
|
190
|
+
run: async (ctx) => {
|
|
191
|
+
const composePath = join(bundleDir, 'docker-compose.yml');
|
|
192
|
+
if (!existsSync(composePath)) {
|
|
193
|
+
throw new Error('docker-compose.yml not found in bundle');
|
|
194
|
+
}
|
|
195
|
+
const content = readFileSync(composePath, 'utf-8');
|
|
196
|
+
const images = extractImageNames(content, 'all');
|
|
197
|
+
ctx?.log(`Found ${images.length} images to pull`);
|
|
198
|
+
let pulled = 0;
|
|
199
|
+
for (const img of images) {
|
|
200
|
+
ctx?.log(`Pulling ${img} (${pulled + 1}/${images.length})...`);
|
|
201
|
+
try {
|
|
202
|
+
await exec('docker', ['pull', img]);
|
|
203
|
+
pulled++;
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
ctx?.log(`Warning: Failed to pull ${img}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return `${pulled}/${images.length} images pulled`;
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
label: 'Save Docker images',
|
|
214
|
+
run: async (ctx) => {
|
|
215
|
+
const composePath = join(bundleDir, 'docker-compose.yml');
|
|
216
|
+
const content = readFileSync(composePath, 'utf-8');
|
|
217
|
+
const images = extractImageNames(content, 'all');
|
|
218
|
+
ctx?.log(`Saving ${images.length} images to images.tar...`);
|
|
219
|
+
await exec('docker', ['save', ...images, '-o', join(bundleDir, 'images.tar')]);
|
|
220
|
+
const size = statSync(join(bundleDir, 'images.tar')).size;
|
|
221
|
+
return formatBytes(size);
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
label: 'Create offline archive',
|
|
226
|
+
run: async (ctx) => {
|
|
227
|
+
ctx?.log(`Archiving ${bundleDir}/ → ${bundleName}`);
|
|
228
|
+
await exec('tar', ['-czf', bundleName, bundleDir]);
|
|
229
|
+
await rm(bundleDir, { recursive: true, force: true });
|
|
230
|
+
const size = statSync(bundleName).size;
|
|
231
|
+
ctx?.log(`Archive size: ${formatBytes(size)}`);
|
|
232
|
+
return bundleName;
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
];
|
|
236
|
+
}
|
|
237
|
+
// ─── Apply Steps (install offline bundle) ───────────────────────────────────
|
|
238
|
+
export function applySteps(bundlePath) {
|
|
239
|
+
const extractDir = `offline-extract-${process.pid}`;
|
|
240
|
+
return [
|
|
241
|
+
{
|
|
242
|
+
label: 'Validate bundle',
|
|
243
|
+
run: async (ctx) => {
|
|
244
|
+
const result = await validateBundle(bundlePath);
|
|
245
|
+
if (!result.valid)
|
|
246
|
+
throw new Error(result.error);
|
|
247
|
+
const size = statSync(bundlePath).size;
|
|
248
|
+
ctx?.log(`Bundle valid: ${formatBytes(size)}`);
|
|
249
|
+
return 'valid';
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
label: 'Extract bundle',
|
|
254
|
+
run: async (ctx) => {
|
|
255
|
+
await mkdir(extractDir, { recursive: true });
|
|
256
|
+
ctx?.log(`Extracting to ${extractDir}/`);
|
|
257
|
+
await exec('tar', ['-xzf', bundlePath, '-C', extractDir, '--strip-components=1']);
|
|
258
|
+
return 'extracted';
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
label: 'Load Docker images',
|
|
263
|
+
run: async (ctx) => {
|
|
264
|
+
const imagesFile = join(extractDir, 'images.tar');
|
|
265
|
+
if (!existsSync(imagesFile)) {
|
|
266
|
+
ctx?.log('No images.tar found — config-only bundle');
|
|
267
|
+
return 'skipped';
|
|
268
|
+
}
|
|
269
|
+
const size = statSync(imagesFile).size;
|
|
270
|
+
ctx?.log(`Loading images (${formatBytes(size)})...`);
|
|
271
|
+
await exec('docker', ['load', '-i', imagesFile]);
|
|
272
|
+
return 'loaded';
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
label: 'Install configuration',
|
|
277
|
+
run: async (ctx) => {
|
|
278
|
+
const { installDir, backupDir } = getPaths();
|
|
279
|
+
await mkdir(backupDir, { recursive: true });
|
|
280
|
+
const configFiles = ['docker-compose.yml', 'Caddyfile', 'cli.sh', 'nats.conf'];
|
|
281
|
+
let installed = 0;
|
|
282
|
+
for (const file of configFiles) {
|
|
283
|
+
const src = join(extractDir, file);
|
|
284
|
+
if (!existsSync(src))
|
|
285
|
+
continue;
|
|
286
|
+
const dest = join(installDir, file);
|
|
287
|
+
if (existsSync(dest)) {
|
|
288
|
+
await copyFile(dest, join(backupDir, `${file}.backup`));
|
|
289
|
+
ctx?.log(`Backed up ${file}`);
|
|
290
|
+
}
|
|
291
|
+
await copyFile(src, dest);
|
|
292
|
+
ctx?.log(`Installed ${file}`);
|
|
293
|
+
installed++;
|
|
294
|
+
}
|
|
295
|
+
// Copy prometheus/grafana directories if present
|
|
296
|
+
const promSrc = join(extractDir, 'prometheus');
|
|
297
|
+
if (existsSync(promSrc)) {
|
|
298
|
+
const promDest = join(installDir, 'prometheus');
|
|
299
|
+
await mkdir(promDest, { recursive: true });
|
|
300
|
+
try {
|
|
301
|
+
await exec('cp', ['-r', `${promSrc}/.`, promDest]);
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
try {
|
|
305
|
+
await exec('sudo', ['cp', '-r', `${promSrc}/.`, promDest]);
|
|
306
|
+
}
|
|
307
|
+
catch { /* skip */ }
|
|
308
|
+
}
|
|
309
|
+
ctx?.log('Installed prometheus/');
|
|
310
|
+
installed++;
|
|
311
|
+
}
|
|
312
|
+
const grafanaSrc = join(extractDir, 'grafana');
|
|
313
|
+
if (existsSync(grafanaSrc)) {
|
|
314
|
+
const grafanaDest = join(installDir, 'grafana');
|
|
315
|
+
await mkdir(grafanaDest, { recursive: true });
|
|
316
|
+
try {
|
|
317
|
+
await exec('cp', ['-r', `${grafanaSrc}/.`, grafanaDest]);
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
try {
|
|
321
|
+
await exec('sudo', ['cp', '-r', `${grafanaSrc}/.`, grafanaDest]);
|
|
322
|
+
}
|
|
323
|
+
catch { /* skip */ }
|
|
324
|
+
}
|
|
325
|
+
ctx?.log('Installed grafana/');
|
|
326
|
+
installed++;
|
|
327
|
+
}
|
|
328
|
+
return `${installed} files installed`;
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
label: 'Restart services',
|
|
333
|
+
run: async (ctx) => {
|
|
334
|
+
ctx?.log('Restarting services...');
|
|
335
|
+
try {
|
|
336
|
+
await exec('systemctl', ['restart', 'docker-compose-app.service']);
|
|
337
|
+
ctx?.log('Restarted via systemctl');
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
ctx?.log('systemctl failed, using docker-compose up');
|
|
341
|
+
await composeUp(['-d']);
|
|
342
|
+
}
|
|
343
|
+
// Cleanup extract dir
|
|
344
|
+
await rm(extractDir, { recursive: true, force: true });
|
|
345
|
+
return 'done';
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
];
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=offline-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline-steps.js","sourceRoot":"","sources":["../../src/lib/offline-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Minimal step context — compatible with the TUI's StepContext. */
|
|
2
|
+
export interface StepContext {
|
|
3
|
+
log: (line: string) => void;
|
|
4
|
+
}
|
|
5
|
+
/** A single pipeline step. Same shape as the TUI's Step interface. */
|
|
6
|
+
export interface UpdateStep {
|
|
7
|
+
label: string;
|
|
8
|
+
run: (ctx?: StepContext) => Promise<string | void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function preflightSteps(targetVersion: string): UpdateStep[];
|
|
11
|
+
export declare function executeSteps(targetVersion: string): UpdateStep[];
|
|
12
|
+
/**
|
|
13
|
+
* Run a list of steps sequentially with console output.
|
|
14
|
+
* Used by `commands/update.ts` to run the same pipeline as the TUI.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runStepsCli(steps: UpdateStep[]): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=update-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-steps.d.ts","sourceRoot":"","sources":["../../src/lib/update-steps.ts"],"names":[],"mappings":"AAYA,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpD;AAID,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CA8BlE;AAID,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAgGhE;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE"}
|