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
28 const dockerSharedPaths = await getSharedPathsOfDockerForMac();
29 let pathsOutofSharedPaths = [];
30 for (let mount of mounts) {
31 const mountPath = mount.Source;
32 let isMountPathSharedToDocker = false;
33 for (let dockerSharedPath of dockerSharedPaths) {
34 if (mountPath.startsWith(dockerSharedPath)) {
35 isMountPathSharedToDocker = true;
36 break;
37 }
38 }
39 if (!isMountPathSharedToDocker) {
40 pathsOutofSharedPaths.push(mountPath);
41 }
42 }
43 return pathsOutofSharedPaths;
44}
45
46module.exports = { findPathsOutofSharedPaths };
\No newline at end of file