dev-cockpit 0.2.6 → 0.2.7
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/mount.d.ts.map +1 -1
- package/dist/core/config.d.ts +21 -6
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/types.d.ts +16 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +69 -28
- package/dist/index.js.map +3 -3
- package/dist/mount/compose.d.ts.map +1 -1
- package/dist/mount/symlinks.d.ts +4 -4
- package/dist/mount/symlinks.d.ts.map +1 -1
- package/dist/mount/types.d.ts +15 -2
- package/dist/mount/types.d.ts.map +1 -1
- package/docs/mount.md +6 -2
- package/examples/cockpit.schema.json +16 -5
- package/examples/cockpit.yaml +4 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/commands/mount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAwBvD,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/commands/mount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAwBvD,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAWD,wBAAgB,WAAW,CAC1B,YAAY,EAAE,SAAS,KAAK,EAAE,EAC9B,cAAc,EAAE,SAAS,KAAK,EAAE,GAC9B,KAAK,EAAE,CAKT;AA2GD,wBAAsB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEtF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCrF"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -200,17 +200,30 @@ export declare const BaseCockpitConfigSchema: z.ZodObject<{
|
|
|
200
200
|
enabled?: boolean | undefined;
|
|
201
201
|
exclude?: string[] | undefined;
|
|
202
202
|
}>>>;
|
|
203
|
-
mounts: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
203
|
+
mounts: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
204
204
|
hostPath: z.ZodString;
|
|
205
|
-
containerPath: z.ZodString
|
|
205
|
+
containerPath: z.ZodOptional<z.ZodString>;
|
|
206
|
+
kind: z.ZodOptional<z.ZodEnum<["bind", "symlink-only"]>>;
|
|
206
207
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
207
208
|
}, "strip", z.ZodTypeAny, {
|
|
208
209
|
hostPath: string;
|
|
209
|
-
containerPath
|
|
210
|
+
containerPath?: string | undefined;
|
|
211
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
210
212
|
meta?: Record<string, unknown> | undefined;
|
|
211
213
|
}, {
|
|
212
214
|
hostPath: string;
|
|
213
|
-
containerPath
|
|
215
|
+
containerPath?: string | undefined;
|
|
216
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
217
|
+
meta?: Record<string, unknown> | undefined;
|
|
218
|
+
}>, {
|
|
219
|
+
hostPath: string;
|
|
220
|
+
containerPath?: string | undefined;
|
|
221
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
222
|
+
meta?: Record<string, unknown> | undefined;
|
|
223
|
+
}, {
|
|
224
|
+
hostPath: string;
|
|
225
|
+
containerPath?: string | undefined;
|
|
226
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
214
227
|
meta?: Record<string, unknown> | undefined;
|
|
215
228
|
}>, "many">>>;
|
|
216
229
|
mount: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
@@ -336,7 +349,8 @@ export declare const BaseCockpitConfigSchema: z.ZodObject<{
|
|
|
336
349
|
};
|
|
337
350
|
mounts: {
|
|
338
351
|
hostPath: string;
|
|
339
|
-
containerPath
|
|
352
|
+
containerPath?: string | undefined;
|
|
353
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
340
354
|
meta?: Record<string, unknown> | undefined;
|
|
341
355
|
}[];
|
|
342
356
|
mount: {
|
|
@@ -427,7 +441,8 @@ export declare const BaseCockpitConfigSchema: z.ZodObject<{
|
|
|
427
441
|
} | undefined;
|
|
428
442
|
mounts?: {
|
|
429
443
|
hostPath: string;
|
|
430
|
-
containerPath
|
|
444
|
+
containerPath?: string | undefined;
|
|
445
|
+
kind?: "bind" | "symlink-only" | undefined;
|
|
431
446
|
meta?: Record<string, unknown> | undefined;
|
|
432
447
|
}[] | undefined;
|
|
433
448
|
mount?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,mFAAmF;AACnF,eAAO,MAAM,cAAc,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,mFAAmF;AACnF,eAAO,MAAM,cAAc,IAAI,CAAC;AAqIhC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAdlC;;;;;;WAMG;;QAEH,iDAAiD;;;;;;;;;IAwBjD,2EAA2E;;IAE3E,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEzE;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,OAAO;aACd,SAAS,EAAE,MAAM;gBAFjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM;CAOpC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,OAAO;gBADd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO;CAKjC;AAID,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,iBAAsB,GAC3B,iBAAiB,CA0CnB"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -59,7 +59,22 @@ export interface Repo {
|
|
|
59
59
|
}
|
|
60
60
|
export interface Mount {
|
|
61
61
|
hostPath: string;
|
|
62
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Absolute path inside the container. Required for `kind: 'bind'` (the
|
|
64
|
+
* default); ignored — and may be omitted — when `kind: 'symlink-only'`.
|
|
65
|
+
*/
|
|
66
|
+
containerPath?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Discriminator for how this mount is materialised.
|
|
69
|
+
*
|
|
70
|
+
* - `'bind'` (default): emit a docker-compose bind into the overlay AND
|
|
71
|
+
* optionally manage an IDE-facing symlink via `Profile.mountSymlinks`.
|
|
72
|
+
* - `'symlink-only'`: no docker bind. The mount exists purely so that
|
|
73
|
+
* `Profile.mountSymlinks.linkPath` can place a host-side symlink (e.g.
|
|
74
|
+
* a wrapper-level `./project` symlink whose downstream effect is to
|
|
75
|
+
* redirect a pre-existing compose bind to the dev clone).
|
|
76
|
+
*/
|
|
77
|
+
kind?: 'bind' | 'symlink-only';
|
|
63
78
|
/**
|
|
64
79
|
* Optional metadata attached by profiles (e.g. `{name, type, installPath}`)
|
|
65
80
|
* for richer status output and lifecycle decisions. dev-cockpit treats this
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAK/C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACrD,2HAA2H;AAC3H,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,sBAAsB,GAC9B,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG;QAAE,cAAc,CAAC,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4819,7 +4819,7 @@ var require_cross_spawn = __commonJS({
|
|
|
4819
4819
|
enoent.hookChildProcess(spawned, parsed);
|
|
4820
4820
|
return spawned;
|
|
4821
4821
|
}
|
|
4822
|
-
function
|
|
4822
|
+
function spawnSync3(command, args, options2) {
|
|
4823
4823
|
const parsed = parse(command, args, options2);
|
|
4824
4824
|
const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);
|
|
4825
4825
|
result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);
|
|
@@ -4827,7 +4827,7 @@ var require_cross_spawn = __commonJS({
|
|
|
4827
4827
|
}
|
|
4828
4828
|
module.exports = spawn2;
|
|
4829
4829
|
module.exports.spawn = spawn2;
|
|
4830
|
-
module.exports.sync =
|
|
4830
|
+
module.exports.sync = spawnSync3;
|
|
4831
4831
|
module.exports._parse = parse;
|
|
4832
4832
|
module.exports._enoent = enoent;
|
|
4833
4833
|
}
|
|
@@ -83970,9 +83970,13 @@ var NotificationsSchema = external_exports.object({
|
|
|
83970
83970
|
});
|
|
83971
83971
|
var MountSchema = external_exports.object({
|
|
83972
83972
|
hostPath: external_exports.string(),
|
|
83973
|
-
containerPath: external_exports.string(),
|
|
83973
|
+
containerPath: external_exports.string().optional(),
|
|
83974
|
+
kind: external_exports.enum(["bind", "symlink-only"]).optional(),
|
|
83974
83975
|
meta: external_exports.record(external_exports.unknown()).optional()
|
|
83975
|
-
})
|
|
83976
|
+
}).refine(
|
|
83977
|
+
(m) => m.kind === "symlink-only" ? true : typeof m.containerPath === "string" && m.containerPath.length > 0,
|
|
83978
|
+
{ message: "Mount with kind='bind' (default) requires containerPath" }
|
|
83979
|
+
);
|
|
83976
83980
|
var ActionSchema = external_exports.object({
|
|
83977
83981
|
id: external_exports.string(),
|
|
83978
83982
|
label: external_exports.string(),
|
|
@@ -92349,11 +92353,12 @@ function renderDockerOverlay(mounts, opts) {
|
|
|
92349
92353
|
lines.push(opts.banner ?? "# Generated by `dev-cockpit mount`. Do not edit by hand \u2014 re-run the command.");
|
|
92350
92354
|
lines.push("services:");
|
|
92351
92355
|
lines.push(` ${opts.service}:`);
|
|
92352
|
-
|
|
92356
|
+
const binds = mounts.filter((m) => m.kind !== "symlink-only" && typeof m.containerPath === "string");
|
|
92357
|
+
if (binds.length === 0) {
|
|
92353
92358
|
lines.push(" volumes: []");
|
|
92354
92359
|
} else {
|
|
92355
92360
|
lines.push(" volumes:");
|
|
92356
|
-
for (const m of
|
|
92361
|
+
for (const m of binds) {
|
|
92357
92362
|
const source = m.hostPath.replace(/\\/g, "/");
|
|
92358
92363
|
lines.push(" - type: bind");
|
|
92359
92364
|
lines.push(` source: ${source}`);
|
|
@@ -92379,35 +92384,66 @@ function resolveOverlayPath(opts) {
|
|
|
92379
92384
|
// src/mount/symlinks.ts
|
|
92380
92385
|
import fs14 from "node:fs";
|
|
92381
92386
|
import path19 from "node:path";
|
|
92387
|
+
import { spawnSync as spawnSync2 } from "node:child_process";
|
|
92382
92388
|
function applyManagedSymlinks(workspaceRoot, mounts, strategy) {
|
|
92383
92389
|
const report = { created: [], replaced: [], skipped: [] };
|
|
92384
92390
|
for (const m of mounts) {
|
|
92385
92391
|
const linkPath = strategy.linkPath(m, workspaceRoot);
|
|
92386
92392
|
if (!linkPath) continue;
|
|
92387
|
-
|
|
92388
|
-
|
|
92389
|
-
|
|
92390
|
-
|
|
92391
|
-
|
|
92392
|
-
|
|
92393
|
-
|
|
92394
|
-
|
|
92395
|
-
|
|
92393
|
+
const outcome = applyOneSymlink(linkPath, m.hostPath);
|
|
92394
|
+
if (outcome === "created") report.created.push(linkPath);
|
|
92395
|
+
else if (outcome === "replaced") report.replaced.push(linkPath);
|
|
92396
|
+
else report.skipped.push(linkPath);
|
|
92397
|
+
}
|
|
92398
|
+
return report;
|
|
92399
|
+
}
|
|
92400
|
+
function applyOneSymlink(linkPath, hostPath) {
|
|
92401
|
+
let preExistingRealDir = false;
|
|
92402
|
+
let existing = null;
|
|
92403
|
+
try {
|
|
92404
|
+
existing = fs14.lstatSync(linkPath);
|
|
92405
|
+
} catch {
|
|
92406
|
+
}
|
|
92407
|
+
if (existing) {
|
|
92408
|
+
if (existing.isSymbolicLink()) {
|
|
92409
|
+
try {
|
|
92410
|
+
if (fs14.readlinkSync(linkPath) === hostPath) return "created";
|
|
92396
92411
|
fs14.unlinkSync(linkPath);
|
|
92397
|
-
}
|
|
92398
|
-
|
|
92399
|
-
|
|
92400
|
-
|
|
92412
|
+
} catch {
|
|
92413
|
+
return "skipped";
|
|
92414
|
+
}
|
|
92415
|
+
} else if (existing.isDirectory()) {
|
|
92416
|
+
preExistingRealDir = true;
|
|
92417
|
+
if (!tryRemoveDir(linkPath)) return "skipped";
|
|
92418
|
+
} else {
|
|
92419
|
+
try {
|
|
92401
92420
|
fs14.unlinkSync(linkPath);
|
|
92421
|
+
} catch {
|
|
92422
|
+
return "skipped";
|
|
92402
92423
|
}
|
|
92403
|
-
} catch {
|
|
92404
92424
|
}
|
|
92425
|
+
}
|
|
92426
|
+
try {
|
|
92405
92427
|
fs14.mkdirSync(path19.dirname(linkPath), { recursive: true });
|
|
92406
|
-
fs14.symlinkSync(
|
|
92407
|
-
|
|
92408
|
-
|
|
92428
|
+
fs14.symlinkSync(hostPath, linkPath);
|
|
92429
|
+
} catch {
|
|
92430
|
+
return "skipped";
|
|
92409
92431
|
}
|
|
92410
|
-
return
|
|
92432
|
+
return preExistingRealDir ? "replaced" : "created";
|
|
92433
|
+
}
|
|
92434
|
+
function tryRemoveDir(p) {
|
|
92435
|
+
try {
|
|
92436
|
+
fs14.rmSync(p, { recursive: true, force: true });
|
|
92437
|
+
} catch {
|
|
92438
|
+
if (process.platform === "darwin") {
|
|
92439
|
+
spawnSync2("chmod", ["-RN", p], { stdio: "ignore" });
|
|
92440
|
+
try {
|
|
92441
|
+
fs14.rmSync(p, { recursive: true, force: true });
|
|
92442
|
+
} catch {
|
|
92443
|
+
}
|
|
92444
|
+
}
|
|
92445
|
+
}
|
|
92446
|
+
return !fs14.existsSync(p);
|
|
92411
92447
|
}
|
|
92412
92448
|
function removeManagedSymlinks(workspaceRoot, mounts, strategy) {
|
|
92413
92449
|
for (const m of mounts) {
|
|
@@ -92477,10 +92513,14 @@ async function readGitInfo(hostPath) {
|
|
|
92477
92513
|
}
|
|
92478
92514
|
|
|
92479
92515
|
// src/commands/mount.ts
|
|
92516
|
+
function mountKey(m) {
|
|
92517
|
+
if (m.kind === "symlink-only") return `symlink:${m.hostPath}`;
|
|
92518
|
+
return `bind:${m.containerPath ?? m.hostPath}`;
|
|
92519
|
+
}
|
|
92480
92520
|
function mergeMounts(configMounts, providerMounts) {
|
|
92481
92521
|
const seen = /* @__PURE__ */ new Map();
|
|
92482
|
-
for (const m of providerMounts) seen.set(m
|
|
92483
|
-
for (const m of configMounts) seen.set(m
|
|
92522
|
+
for (const m of providerMounts) seen.set(mountKey(m), m);
|
|
92523
|
+
for (const m of configMounts) seen.set(mountKey(m), m);
|
|
92484
92524
|
return Array.from(seen.values());
|
|
92485
92525
|
}
|
|
92486
92526
|
async function resolveContext(opts) {
|
|
@@ -92555,7 +92595,8 @@ function applyExclude(mounts, exclude) {
|
|
|
92555
92595
|
async function pickMounts(candidates) {
|
|
92556
92596
|
const { checkbox } = await import("@inquirer/prompts");
|
|
92557
92597
|
const choices = candidates.map((m) => {
|
|
92558
|
-
const
|
|
92598
|
+
const fallbackName = m.containerPath ?? (m.kind === "symlink-only" ? `(symlink) ${m.hostPath}` : m.hostPath);
|
|
92599
|
+
const name = m.meta?.["name"] ?? fallbackName;
|
|
92559
92600
|
const type = m.meta?.["type"];
|
|
92560
92601
|
const label = type ? `${name} (${type}) ${m.hostPath}` : `${name} ${m.hostPath}`;
|
|
92561
92602
|
return { name: label, value: m, checked: true };
|
|
@@ -92674,7 +92715,7 @@ dev-cockpit mount status \u2014 service: ${manifest.service}
|
|
|
92674
92715
|
const headers = ["NAME", "BRANCH", "DIRTY", ...Array.from(extraKeys)];
|
|
92675
92716
|
const widths = headers.map((h2) => h2.length);
|
|
92676
92717
|
const dataRows = rows.map((r) => {
|
|
92677
|
-
const name = r.mount.meta?.["name"] ?? r.mount.containerPath;
|
|
92718
|
+
const name = r.mount.meta?.["name"] ?? r.mount.containerPath ?? r.mount.hostPath;
|
|
92678
92719
|
const branch = (r.info.branch ?? "?").slice(0, 24);
|
|
92679
92720
|
const dirty = r.info.dirty === void 0 ? "?" : r.info.dirty ? "yes" : "no";
|
|
92680
92721
|
const extras = Array.from(extraKeys).map((k) => r.info.extra?.[k] ?? "");
|