docker-client-mx 1.44.0 → 1.46.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/docker-desktop-mx/browser/chunk-6Ee5XYkz.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B-jCnQFP2.js +6 -0
- package/dist/docker-desktop-mx/browser/{chunk-Dp9UsDfH.js → chunk-B2FafzpV.js} +3 -3
- package/dist/docker-desktop-mx/browser/chunk-B6qORmpw.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B7IRMMXz2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B7xNIuls.js +3 -0
- package/dist/docker-desktop-mx/browser/chunk-BFq6LhBl.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-CGKsmblG.js → chunk-BHeMRkJW.js} +4 -4
- package/dist/docker-desktop-mx/browser/{chunk-7mU3uVaN.js → chunk-BNXdbUqv.js} +2 -2
- package/dist/docker-desktop-mx/browser/chunk-BSz2tiCV.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-BZygkakw2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Ba7ROPTT.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-BiQwXu_z.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Bk32Rk5p.js +4 -0
- package/dist/docker-desktop-mx/browser/chunk-BsmS2zXP.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ByAKccx1.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-C4OFwmD92.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-BCYusaqm.js → chunk-C9w0bf2Y.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-CI-MgoDd.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CLii2-2s.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CWjMCD8T.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CaJx4ff8.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-xPy8hpGV.js → chunk-CesW8OnI.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-CgneC1Je.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ChGlpKnY.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CnivQPHU.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CyNh8lBK2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D-daLnRf.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D5pKQvyX.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D8vF1ayp2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DFkgt4XH.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DJfErblk.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DKpHGsCy.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DTYNCfd52.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DWYNwk_L.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Ds9UWi20.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DwKe2pMP.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-FM5_LSb4.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-FuBWiPKf.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-bj_sMiGa.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-DtbAIphi.js → chunk-dMo4BIG3.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-gOjj4-4k.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-idasJ9ng.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ux3iG9S52.js +1 -0
- package/dist/docker-desktop-mx/browser/index.html +2 -2
- package/dist/docker-desktop-mx/browser/main-DIJOTBZN.js +1 -0
- package/dist/docker-desktop-mx/browser/styles-3HWRDJL3.css +1 -0
- package/dist-electron/channels.js +19 -0
- package/dist-electron/channels.js.map +1 -1
- package/dist-electron/file-ops.js +315 -0
- package/dist-electron/file-ops.js.map +1 -0
- package/dist-electron/files.js +19 -10
- package/dist-electron/files.js.map +1 -1
- package/dist-electron/ipc.js +76 -10
- package/dist-electron/ipc.js.map +1 -1
- package/dist-electron/main.js +63 -2
- package/dist-electron/main.js.map +1 -1
- package/dist-electron/preload.js +41 -3
- package/dist-electron/preload.js.map +1 -1
- package/dist-electron/settings.js +24 -1
- package/dist-electron/settings.js.map +1 -1
- package/dist-electron/system.js +51 -1
- package/dist-electron/system.js.map +1 -1
- package/dist-electron/volume-file-edit.js +78 -0
- package/dist-electron/volume-file-edit.js.map +1 -0
- package/dist-electron/volume-files.js +9 -6
- package/dist-electron/volume-files.js.map +1 -1
- package/dist-electron/volume-schedules.js +285 -0
- package/dist-electron/volume-schedules.js.map +1 -0
- package/package.json +1 -1
- package/dist/docker-desktop-mx/browser/chunk-5u_BJ6JX.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-6988XP3w.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-B23Afk52.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-B7xGbGa9.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-B8Uu84pE.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BEtYD0_3.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BG-O4Nb_.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BJsftgmt.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Bho6QLGs.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-C1Nu6ZjD.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-C3hTwhog.js +0 -4
- package/dist/docker-desktop-mx/browser/chunk-C52HI2A-.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CMi-ZnXy.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CYFxPPxo2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Cl4e4J9q.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Cr28jI1A.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CzkAHty9.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-D1tQa5OM.js +0 -3
- package/dist/docker-desktop-mx/browser/chunk-D3PaEk7L.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DApzx4cc2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DNiq9JXI.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DSfTqCF0.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DeEfJWMH2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DeROY6LN.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DffEUxgS.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Di7dDUYN2.js +0 -6
- package/dist/docker-desktop-mx/browser/chunk-DiB8MPYS.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DtM-X5Eh.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DtY6mcWb.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DvJZmDzM2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Dy3d-reD.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DzyPSjiy2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-MyEYCSP-.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-bSfpBwIa.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-e16wEMMK.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-eoU2TjRt.js +0 -1
- package/dist/docker-desktop-mx/browser/main-WTPCDZAO.js +0 -1
- package/dist/docker-desktop-mx/browser/styles-2WH7TMRX.css +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_MUTED = void 0;
|
|
3
4
|
exports.setShortcutActive = setShortcutActive;
|
|
4
5
|
exports.onSettingsChanged = onSettingsChanged;
|
|
5
6
|
exports.paletteShortcutEnabled = paletteShortcutEnabled;
|
|
@@ -9,6 +10,8 @@ exports.configureSettings = configureSettings;
|
|
|
9
10
|
exports.readSettings = readSettings;
|
|
10
11
|
exports.updateSettings = updateSettings;
|
|
11
12
|
exports.notificationsEnabled = notificationsEnabled;
|
|
13
|
+
exports.muteContainer = muteContainer;
|
|
14
|
+
exports.containerMuted = containerMuted;
|
|
12
15
|
exports.wiringNotificationsEnabled = wiringNotificationsEnabled;
|
|
13
16
|
exports.autoPruneEnabled = autoPruneEnabled;
|
|
14
17
|
exports.lastAutoPrune = lastAutoPrune;
|
|
@@ -21,6 +24,7 @@ const DEFAULTS = {
|
|
|
21
24
|
notifyCrash: true,
|
|
22
25
|
notifyUnhealthy: true,
|
|
23
26
|
notifyWiring: true,
|
|
27
|
+
mutedContainers: [],
|
|
24
28
|
paletteShortcut: true,
|
|
25
29
|
autoUpdate: true,
|
|
26
30
|
autoPrune: false,
|
|
@@ -88,6 +92,13 @@ function reconcileLoginItem() {
|
|
|
88
92
|
deps.loginItem.set(true);
|
|
89
93
|
}
|
|
90
94
|
}
|
|
95
|
+
/** Het grootste aantal containers zonder meldingen dat we bewaren; meer is vast een vergissing. */
|
|
96
|
+
exports.MAX_MUTED = 500;
|
|
97
|
+
/** Namen zonder dubbele, lege of rare waarden, gesorteerd, zodat het bestand niet bij elke klik schuift. */
|
|
98
|
+
function tidyNames(names) {
|
|
99
|
+
const kept = names.filter((name) => typeof name === 'string' && name !== '' && name.length <= 256);
|
|
100
|
+
return [...new Set(kept)].sort((a, b) => a.localeCompare(b)).slice(0, exports.MAX_MUTED);
|
|
101
|
+
}
|
|
91
102
|
/**
|
|
92
103
|
* Leest het bewaarde bestand. Een kapot of onvolledig bestand valt per veld terug op de
|
|
93
104
|
* standaard: een melding die per ongeluk uit staat is erger dan een die per ongeluk aan staat.
|
|
@@ -102,6 +113,7 @@ function parseStored(text) {
|
|
|
102
113
|
notifyCrash: typeof raw.notifyCrash === 'boolean' ? raw.notifyCrash : DEFAULTS.notifyCrash,
|
|
103
114
|
notifyUnhealthy: typeof raw.notifyUnhealthy === 'boolean' ? raw.notifyUnhealthy : DEFAULTS.notifyUnhealthy,
|
|
104
115
|
notifyWiring: typeof raw.notifyWiring === 'boolean' ? raw.notifyWiring : DEFAULTS.notifyWiring,
|
|
116
|
+
mutedContainers: Array.isArray(raw.mutedContainers) ? tidyNames(raw.mutedContainers) : DEFAULTS.mutedContainers,
|
|
105
117
|
paletteShortcut: typeof raw.paletteShortcut === 'boolean' ? raw.paletteShortcut : DEFAULTS.paletteShortcut,
|
|
106
118
|
autoUpdate: typeof raw.autoUpdate === 'boolean' ? raw.autoUpdate : DEFAULTS.autoUpdate,
|
|
107
119
|
autoPrune: typeof raw.autoPrune === 'boolean' ? raw.autoPrune : DEFAULTS.autoPrune,
|
|
@@ -145,6 +157,7 @@ function updateSettings(patch) {
|
|
|
145
157
|
notifyCrash: patch.notifyCrash ?? stored.notifyCrash,
|
|
146
158
|
notifyUnhealthy: patch.notifyUnhealthy ?? stored.notifyUnhealthy,
|
|
147
159
|
notifyWiring: patch.notifyWiring ?? stored.notifyWiring,
|
|
160
|
+
mutedContainers: patch.mutedContainers === undefined ? stored.mutedContainers : tidyNames(patch.mutedContainers),
|
|
148
161
|
paletteShortcut: patch.paletteShortcut ?? stored.paletteShortcut,
|
|
149
162
|
autoUpdate: patch.autoUpdate ?? stored.autoUpdate,
|
|
150
163
|
autoPrune: patch.autoPrune ?? stored.autoPrune,
|
|
@@ -152,7 +165,8 @@ function updateSettings(patch) {
|
|
|
152
165
|
language: patch.language ?? stored.language,
|
|
153
166
|
assistantModel: patch.assistantModel ?? stored.assistantModel,
|
|
154
167
|
};
|
|
155
|
-
|
|
168
|
+
const changed = (key) => key === 'mutedContainers' ? JSON.stringify(next.mutedContainers) !== JSON.stringify(stored.mutedContainers) : next[key] !== stored[key];
|
|
169
|
+
if (loginChanged || Object.keys(next).some(changed)) {
|
|
156
170
|
stored = next;
|
|
157
171
|
persist();
|
|
158
172
|
(0, i18n_1.setLanguage)(stored.language);
|
|
@@ -164,6 +178,15 @@ function updateSettings(patch) {
|
|
|
164
178
|
function notificationsEnabled(kind) {
|
|
165
179
|
return kind === 'crash' ? stored.notifyCrash : stored.notifyUnhealthy;
|
|
166
180
|
}
|
|
181
|
+
/** Meldingen voor één container uit of weer aan (fase 84); in main, zodat twee klikken elkaar niet overschrijven. */
|
|
182
|
+
function muteContainer(name, muted) {
|
|
183
|
+
const rest = stored.mutedContainers.filter((candidate) => candidate !== name);
|
|
184
|
+
return updateSettings({ mutedContainers: muted ? [...rest, name] : rest });
|
|
185
|
+
}
|
|
186
|
+
/** Of deze container stil is: dan geen melding over crashen, unhealthy of het netwerk. */
|
|
187
|
+
function containerMuted(name) {
|
|
188
|
+
return stored.mutedContainers.includes(name.replace(/^\//, ''));
|
|
189
|
+
}
|
|
167
190
|
/** Of er een melding komt als een container zijn netwerk of zijn poorten kwijt is. */
|
|
168
191
|
function wiringNotificationsEnabled() {
|
|
169
192
|
return stored.notifyWiring;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../electron/settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../electron/settings.ts"],"names":[],"mappings":"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"}
|
package/dist-electron/system.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PRUNE_ORDER = void 0;
|
|
3
|
+
exports.PRUNE_ORDER = exports.SPACE_TOP = void 0;
|
|
4
|
+
exports.toSpaceUsage = toSpaceUsage;
|
|
4
5
|
exports.toDiskUsage = toDiskUsage;
|
|
5
6
|
exports.readDiskUsage = readDiskUsage;
|
|
7
|
+
exports.readSpaceUsage = readSpaceUsage;
|
|
6
8
|
exports.pruneBuildCache = pruneBuildCache;
|
|
7
9
|
exports.runPrunes = runPrunes;
|
|
8
10
|
exports.pruneSystem = pruneSystem;
|
|
@@ -12,6 +14,50 @@ const images_1 = require("./images");
|
|
|
12
14
|
const networks_1 = require("./networks");
|
|
13
15
|
const volumes_1 = require("./volumes");
|
|
14
16
|
const i18n_1 = require("./i18n");
|
|
17
|
+
/** Zoveel per soort; meer is geen overzicht meer maar de lijst van die pagina. */
|
|
18
|
+
exports.SPACE_TOP = 10;
|
|
19
|
+
function top(items) {
|
|
20
|
+
return [...items].sort((a, b) => b.sizeBytes - a.sizeBytes || a.name.localeCompare(b.name)).slice(0, exports.SPACE_TOP);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Waar de ruimte zit (fase 82): per soort de grootste, uit dezelfde `/system/df` als de kaart.
|
|
24
|
+
*
|
|
25
|
+
* De grootte van een image is die van `docker images`: met de lagen die hij met andere deelt. Dat
|
|
26
|
+
* telt samen meer op dan de kaart, maar per image is het wat er vrijkomt als hij de laatste is
|
|
27
|
+
* die ze gebruikt, en dat is de vraag die je hier stelt. Een volume dat Docker (nog) niet gemeten
|
|
28
|
+
* heeft, geeft -1; dat telt als nul.
|
|
29
|
+
*/
|
|
30
|
+
function toSpaceUsage(raw) {
|
|
31
|
+
const images = (raw.Images ?? []).map((image) => ({
|
|
32
|
+
id: image.Id ?? '',
|
|
33
|
+
name: image.RepoTags?.find((tag) => tag !== '<none>:<none>') ?? (image.Id ?? '').replace(/^sha256:/, '').slice(0, 12),
|
|
34
|
+
sizeBytes: Math.max(0, image.Size ?? 0),
|
|
35
|
+
users: Math.max(0, image.Containers ?? 0),
|
|
36
|
+
running: false,
|
|
37
|
+
}));
|
|
38
|
+
const volumes = (raw.Volumes ?? []).map((volume) => ({
|
|
39
|
+
id: volume.Name ?? '',
|
|
40
|
+
name: volume.Name ?? '',
|
|
41
|
+
sizeBytes: Math.max(0, volume.UsageData?.Size ?? 0),
|
|
42
|
+
users: Math.max(0, volume.UsageData?.RefCount ?? 0),
|
|
43
|
+
running: false,
|
|
44
|
+
}));
|
|
45
|
+
const containers = (raw.Containers ?? []).map((container) => ({
|
|
46
|
+
id: container.Id ?? '',
|
|
47
|
+
name: (container.Names?.[0] ?? container.Id ?? '').replace(/^\//, ''),
|
|
48
|
+
sizeBytes: Math.max(0, container.SizeRw ?? 0),
|
|
49
|
+
users: 0,
|
|
50
|
+
running: container.State === 'running',
|
|
51
|
+
}));
|
|
52
|
+
const cache = raw.BuildCache ?? [];
|
|
53
|
+
return {
|
|
54
|
+
images: top(images),
|
|
55
|
+
volumes: top(volumes),
|
|
56
|
+
containers: top(containers),
|
|
57
|
+
buildCacheBytes: sum(cache.map((item) => item.Size ?? 0)),
|
|
58
|
+
buildCacheItems: cache.length,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
15
61
|
function sum(values) {
|
|
16
62
|
return values.reduce((total, value) => total + value, 0);
|
|
17
63
|
}
|
|
@@ -53,6 +99,10 @@ async function readDiskUsage() {
|
|
|
53
99
|
const { docker } = (0, docker_client_1.getConnection)();
|
|
54
100
|
return toDiskUsage((await docker.df()));
|
|
55
101
|
}
|
|
102
|
+
/** De grootste per soort; `/system/df` doorloopt de opslag en kan even duren. */
|
|
103
|
+
async function readSpaceUsage() {
|
|
104
|
+
return toSpaceUsage((await (0, docker_client_1.getConnection)().docker.df()));
|
|
105
|
+
}
|
|
56
106
|
/**
|
|
57
107
|
* Gooit alle build cache weg die niet in gebruik is, zoals `docker builder prune -a`.
|
|
58
108
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../electron/system.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../electron/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readVolumeFile = readVolumeFile;
|
|
4
|
+
exports.saveVolumeFile = saveVolumeFile;
|
|
5
|
+
exports.uploadToVolume = uploadToVolume;
|
|
6
|
+
const file_edit_1 = require("./file-edit");
|
|
7
|
+
const files_1 = require("./files");
|
|
8
|
+
const i18n_1 = require("./i18n");
|
|
9
|
+
const volume_backup_1 = require("./volume-backup");
|
|
10
|
+
const volume_files_1 = require("./volume-files");
|
|
11
|
+
/**
|
|
12
|
+
* Een bestand in een volume bewerken en bestanden erin zetten (fase 83), zonder container van jezelf.
|
|
13
|
+
*
|
|
14
|
+
* Lezen gaat via de hulpcontainer van de inkijk (fase 31), en die houdt het volume alleen-lezen: wie
|
|
15
|
+
* bladert, kan niets stukmaken. Schrijven gaat in een eigen hulpcontainer met het volume beschrijfbaar,
|
|
16
|
+
* dezelfde die de back-up en het kopiëren gebruiken: die wordt nooit gestart en is na afloop weer
|
|
17
|
+
* weg. De editor en de conflictcontrole zijn die van fase 78; eigenaar en rechten blijven.
|
|
18
|
+
*/
|
|
19
|
+
function outside(file) {
|
|
20
|
+
return (0, i18n_1.t)({
|
|
21
|
+
en: `${file} is a symlink to outside the volume; open it in a container that uses the volume.`,
|
|
22
|
+
nl: `${file} is een symlink naar buiten het volume; open het in een container die het volume gebruikt.`,
|
|
23
|
+
de: `${file} ist ein Symlink nach außerhalb des Volumes; öffnen Sie es in einem Container, der das Volume nutzt.`,
|
|
24
|
+
fr: `${file} est un lien symbolique vers l’extérieur du volume ; ouvrez-le dans un conteneur qui utilise le volume.`,
|
|
25
|
+
es: `${file} es un symlink hacia fuera del volumen; ábrelo en un contenedor que use el volumen.`,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function changed(file) {
|
|
29
|
+
return (0, i18n_1.t)({
|
|
30
|
+
en: `${file} has changed in the volume since you opened it.`,
|
|
31
|
+
nl: `${file} is in het volume veranderd sinds je het opende.`,
|
|
32
|
+
de: `${file} hat sich im Volume geändert, seit Sie es geöffnet haben.`,
|
|
33
|
+
fr: `${file} a changé dans le volume depuis que vous l’avez ouvert.`,
|
|
34
|
+
es: `${file} ha cambiado en el volumen desde que lo abriste.`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/** Leest een tekstbestand uit het volume, met het pad zoals het volume het ziet. */
|
|
38
|
+
async function readVolumeFile(volume, requested) {
|
|
39
|
+
try {
|
|
40
|
+
const result = await (0, file_edit_1.readEditableFile)(await (0, volume_files_1.helperFor)(volume), (0, volume_files_1.mountedPath)(requested));
|
|
41
|
+
if (!result.ok) {
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
// Een symlink naar een absoluut pad wijst in de hulpcontainer naar diens eigen bestanden, niet
|
|
45
|
+
// naar die van de container die het volume gebruikt. Dat bewerken zou nergens landen.
|
|
46
|
+
if (result.path !== volume_files_1.MOUNT && !result.path.startsWith(`${volume_files_1.MOUNT}/`)) {
|
|
47
|
+
return { ok: false, problem: outside(requested) };
|
|
48
|
+
}
|
|
49
|
+
return { ...result, path: (0, volume_files_1.volumePath)(result.path), onMount: true };
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
return { ok: false, problem: err instanceof Error ? err.message : String(err) };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Zet de tekst terug in het volume, met de conflictcontrole en de rechten van fase 78. */
|
|
56
|
+
async function saveVolumeFile(volume, file, text, version, force) {
|
|
57
|
+
try {
|
|
58
|
+
const result = await (0, volume_backup_1.withHelperMounts)([volume], [`${volume}:${volume_files_1.MOUNT}`], (container) => (0, file_edit_1.saveEditableFile)(container.id, (0, volume_files_1.mountedPath)(file), text, version, force));
|
|
59
|
+
// De melding van fase 78 spreekt van "de container" en van het pad erin; hier is het het volume.
|
|
60
|
+
if (!result.ok && result.conflict) {
|
|
61
|
+
return { ...result, problem: changed((0, volume_files_1.volumePath)((0, volume_files_1.mountedPath)(file))) };
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
return { ok: false, conflict: false, problem: err instanceof Error ? err.message : String(err) };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Zet lokale bestanden in een map van het volume, zoals uploaden in de tab Bestanden (fase 13). */
|
|
70
|
+
async function uploadToVolume(volume, dir, localPaths) {
|
|
71
|
+
try {
|
|
72
|
+
return await (0, volume_backup_1.withHelperMounts)([volume], [`${volume}:${volume_files_1.MOUNT}`], (container) => (0, files_1.uploadFiles)(container.id, (0, volume_files_1.mountedPath)(dir), localPaths));
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
return { ok: false, problem: err instanceof Error ? err.message : String(err) };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=volume-file-edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-file-edit.js","sourceRoot":"","sources":["../electron/volume-file-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MOUNT = void 0;
|
|
3
4
|
exports.mountedPath = mountedPath;
|
|
4
5
|
exports.volumePath = volumePath;
|
|
6
|
+
exports.ensureImage = ensureImage;
|
|
7
|
+
exports.helperFor = helperFor;
|
|
5
8
|
exports.listVolumeDirectory = listVolumeDirectory;
|
|
6
9
|
exports.closeVolumeBrowser = closeVolumeBrowser;
|
|
7
10
|
exports.hasVolumeBrowser = hasVolumeBrowser;
|
|
@@ -26,7 +29,7 @@ const i18n_1 = require("./i18n");
|
|
|
26
29
|
* op aan zijn label, net als bij de host-shell.
|
|
27
30
|
*/
|
|
28
31
|
/** Waar het volume in de hulpcontainer hangt. Alles wat de renderer vraagt zit hieronder. */
|
|
29
|
-
|
|
32
|
+
exports.MOUNT = '/volume';
|
|
30
33
|
/** Zodat een achtergebleven hulpcontainer te herkennen is, los van die van de host-shell. */
|
|
31
34
|
const ROLE = 'volume-browser';
|
|
32
35
|
/** Blijft draaien tot wij hem weghalen; `sleep` zonder meer, want er hoeft niets te gebeuren. */
|
|
@@ -35,14 +38,14 @@ let open = null;
|
|
|
35
38
|
/** Het pad in de hulpcontainer voor een pad in het volume. */
|
|
36
39
|
function mountedPath(pathInVolume) {
|
|
37
40
|
const normalized = (0, files_1.normalizeContainerPath)(pathInVolume);
|
|
38
|
-
return normalized === '/' ? MOUNT : `${MOUNT}${normalized}`;
|
|
41
|
+
return normalized === '/' ? exports.MOUNT : `${exports.MOUNT}${normalized}`;
|
|
39
42
|
}
|
|
40
43
|
/** Het pad in het volume voor een pad in de hulpcontainer; de renderer ziet `/` als de wortel. */
|
|
41
44
|
function volumePath(pathInContainer) {
|
|
42
|
-
if (!pathInContainer.startsWith(MOUNT)) {
|
|
45
|
+
if (!pathInContainer.startsWith(exports.MOUNT)) {
|
|
43
46
|
return '/';
|
|
44
47
|
}
|
|
45
|
-
const rest = pathInContainer.slice(MOUNT.length);
|
|
48
|
+
const rest = pathInContainer.slice(exports.MOUNT.length);
|
|
46
49
|
return rest === '' ? '/' : rest;
|
|
47
50
|
}
|
|
48
51
|
async function removeHelper(id) {
|
|
@@ -69,7 +72,7 @@ async function ensureImage() {
|
|
|
69
72
|
docker.modem.followProgress(stream, (err) => (err === null ? resolve() : reject(err)));
|
|
70
73
|
});
|
|
71
74
|
}
|
|
72
|
-
/** De hulpcontainer voor dit volume; maakt hem aan als hij er nog niet is. */
|
|
75
|
+
/** De hulpcontainer voor dit volume; maakt hem aan als hij er nog niet is. Alleen-lezen. */
|
|
73
76
|
async function helperFor(volume) {
|
|
74
77
|
if (open?.volume === volume) {
|
|
75
78
|
return open.containerId;
|
|
@@ -83,7 +86,7 @@ async function helperFor(volume) {
|
|
|
83
86
|
Image: host_shell_1.HELPER_IMAGE,
|
|
84
87
|
Cmd: IDLE_COMMAND,
|
|
85
88
|
Labels: { [host_shell_1.HELPER_LABEL]: ROLE, [host_shell_1.OWNER_LABEL]: String(process.pid) },
|
|
86
|
-
HostConfig: { Binds: [`${volume}:${MOUNT}:ro`], AutoRemove: false, NetworkMode: 'none' },
|
|
89
|
+
HostConfig: { Binds: [`${volume}:${exports.MOUNT}:ro`], AutoRemove: false, NetworkMode: 'none' },
|
|
87
90
|
});
|
|
88
91
|
await container.start();
|
|
89
92
|
open = { volume, containerId: container.id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume-files.js","sourceRoot":"","sources":["../electron/volume-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"volume-files.js","sourceRoot":"","sources":["../electron/volume-files.ts"],"names":[],"mappings":"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"}
|