UNPKG

1.23 kBJavaScriptView Raw
1'use strict';
2const fs = require('fs-extra');
3const path = require('path');
4const USER_HOME = require('os').homedir();
5const defaultFileSharingPaths = [
6 '/Users',
7 '/Volumes',
8 '/private',
9 '/tmp'
10];
11
12async function getSharedPathsOfDockerForMac() {
13
14 const settingsPath = path.join(USER_HOME, 'Library/Group Containers/group.com.docker/settings.json');
15
16 const fileData = await fs.readFile(settingsPath, 'utf8');
17
18 const settings = JSON.parse(fileData);
19
20 if (settings.hasOwnProperty('filesharingDirectories')) {
21 return settings.filesharingDirectories;
22 }
23 return defaultFileSharingPaths;
24}
25
26async function findPathsOutofSharedPaths(mounts) {
27 const dockerSharedPaths = await getSharedPathsOfDockerForMac();
28 let pathsOutofSharedPaths = [];
29 for (let mount of mounts) {
30 const mountPath = mount.Source;
31 let isMountPathSharedToDocker = false;
32 for (let dockerSharedPath of dockerSharedPaths) {
33 if (mountPath.startsWith(dockerSharedPath)) {
34 isMountPathSharedToDocker = true;
35 break;
36 }
37 }
38 if (!isMountPathSharedToDocker) {
39 pathsOutofSharedPaths.push(mountPath);
40 }
41 }
42 return pathsOutofSharedPaths;
43}
44
45module.exports = { findPathsOutofSharedPaths };
\No newline at end of file