UNPKG

2.22 kBJavaScriptView Raw
1'use strict';
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10const fs = require('fs-extra');
11const path = require('path');
12const _ = require('lodash');
13const USER_HOME = require('os').homedir();
14const defaultFileSharingPaths = [
15 '/Users',
16 '/Volumes',
17 '/private',
18 '/tmp'
19];
20function getSharedPathsOfDockerForMac() {
21 return __awaiter(this, void 0, void 0, function* () {
22 const settingsPath = path.join(USER_HOME, 'Library/Group Containers/group.com.docker/settings.json');
23 const fileData = yield fs.readFile(settingsPath, 'utf8');
24 const settings = JSON.parse(fileData);
25 if (settings.hasOwnProperty('filesharingDirectories')) {
26 return settings.filesharingDirectories;
27 }
28 return defaultFileSharingPaths;
29 });
30}
31function findPathsOutofSharedPaths(mounts) {
32 return __awaiter(this, void 0, void 0, function* () {
33 const dockerSharedPaths = yield getSharedPathsOfDockerForMac();
34 let pathsOutofSharedPaths = [];
35 for (let mount of mounts) {
36 if (_.isEmpty(mount)) {
37 continue;
38 }
39 const mountPath = mount.Source;
40 let isMountPathSharedToDocker = false;
41 for (let dockerSharedPath of dockerSharedPaths) {
42 if (mountPath.startsWith(dockerSharedPath)) {
43 isMountPathSharedToDocker = true;
44 break;
45 }
46 }
47 if (!isMountPathSharedToDocker) {
48 pathsOutofSharedPaths.push(mountPath);
49 }
50 }
51 return pathsOutofSharedPaths;
52 });
53}
54module.exports = { findPathsOutofSharedPaths };