UNPKG

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