@andersbakken/fisk 4.0.2 → 4.0.4
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/builder/fisk-builder.js +32 -132
- package/package.json +2 -3
- package/scheduler/fisk-scheduler.js +426 -303
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var fs$
|
|
4
|
+
var fs$p = require('fs');
|
|
5
5
|
var assert$1 = require('assert');
|
|
6
6
|
var require$$0$3 = require('constants');
|
|
7
7
|
var require$$0$4 = require('stream');
|
|
@@ -9,12 +9,12 @@ var require$$4$1 = require('util');
|
|
|
9
9
|
var path$l = require('path');
|
|
10
10
|
var require$$1$1 = require('os');
|
|
11
11
|
var child_process = require('child_process');
|
|
12
|
-
var crypto$1 = require('crypto');
|
|
13
12
|
var require$$0$5 = require('events');
|
|
14
13
|
var require$$1$2 = require('https');
|
|
15
14
|
var require$$2$2 = require('http');
|
|
16
15
|
var require$$3$1 = require('net');
|
|
17
16
|
var require$$4$2 = require('tls');
|
|
17
|
+
var crypto$1 = require('crypto');
|
|
18
18
|
var require$$6$1 = require('url');
|
|
19
19
|
var require$$0$6 = require('zlib');
|
|
20
20
|
var require$$0$7 = require('tty');
|
|
@@ -26,7 +26,7 @@ var posix = require('posix');
|
|
|
26
26
|
|
|
27
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
28
28
|
|
|
29
|
-
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$
|
|
29
|
+
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$p);
|
|
30
30
|
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert$1);
|
|
31
31
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
|
|
32
32
|
var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
|
|
@@ -34,12 +34,12 @@ var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4$1);
|
|
|
34
34
|
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$l);
|
|
35
35
|
var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
|
|
36
36
|
var child_process__default = /*#__PURE__*/_interopDefaultLegacy(child_process);
|
|
37
|
-
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto$1);
|
|
38
37
|
var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$5);
|
|
39
38
|
var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$2);
|
|
40
39
|
var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2$2);
|
|
41
40
|
var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3$1);
|
|
42
41
|
var require$$4__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$4$2);
|
|
42
|
+
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto$1);
|
|
43
43
|
var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6$1);
|
|
44
44
|
var require$$0__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$0$6);
|
|
45
45
|
var require$$0__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$0$7);
|
|
@@ -241,7 +241,7 @@ var lib$3 = {
|
|
|
241
241
|
set exports(v){ libExports$1 = v; },
|
|
242
242
|
};
|
|
243
243
|
|
|
244
|
-
var fs$
|
|
244
|
+
var fs$o = {};
|
|
245
245
|
|
|
246
246
|
var universalify = {};
|
|
247
247
|
|
|
@@ -766,7 +766,7 @@ function clone$1 (obj) {
|
|
|
766
766
|
return copy
|
|
767
767
|
}
|
|
768
768
|
|
|
769
|
-
var fs$
|
|
769
|
+
var fs$n = fs__default["default"];
|
|
770
770
|
var polyfills = polyfills$1;
|
|
771
771
|
var legacy = legacyStreams;
|
|
772
772
|
var clone = clone_1;
|
|
@@ -808,18 +808,18 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
|
|
|
808
808
|
};
|
|
809
809
|
|
|
810
810
|
// Once time initialization
|
|
811
|
-
if (!fs$
|
|
811
|
+
if (!fs$n[gracefulQueue]) {
|
|
812
812
|
// This queue can be shared by multiple loaded instances
|
|
813
813
|
var queue = commonjsGlobal[gracefulQueue] || [];
|
|
814
|
-
publishQueue(fs$
|
|
814
|
+
publishQueue(fs$n, queue);
|
|
815
815
|
|
|
816
816
|
// Patch fs.close/closeSync to shared queue version, because we need
|
|
817
817
|
// to retry() whenever a close happens *anywhere* in the program.
|
|
818
818
|
// This is essential when multiple graceful-fs instances are
|
|
819
819
|
// in play at the same time.
|
|
820
|
-
fs$
|
|
820
|
+
fs$n.close = (function (fs$close) {
|
|
821
821
|
function close (fd, cb) {
|
|
822
|
-
return fs$close.call(fs$
|
|
822
|
+
return fs$close.call(fs$n, fd, function (err) {
|
|
823
823
|
// This function uses the graceful-fs shared queue
|
|
824
824
|
if (!err) {
|
|
825
825
|
resetQueue();
|
|
@@ -834,12 +834,12 @@ if (!fs$m[gracefulQueue]) {
|
|
|
834
834
|
value: fs$close
|
|
835
835
|
});
|
|
836
836
|
return close
|
|
837
|
-
})(fs$
|
|
837
|
+
})(fs$n.close);
|
|
838
838
|
|
|
839
|
-
fs$
|
|
839
|
+
fs$n.closeSync = (function (fs$closeSync) {
|
|
840
840
|
function closeSync (fd) {
|
|
841
841
|
// This function uses the graceful-fs shared queue
|
|
842
|
-
fs$closeSync.apply(fs$
|
|
842
|
+
fs$closeSync.apply(fs$n, arguments);
|
|
843
843
|
resetQueue();
|
|
844
844
|
}
|
|
845
845
|
|
|
@@ -847,24 +847,24 @@ if (!fs$m[gracefulQueue]) {
|
|
|
847
847
|
value: fs$closeSync
|
|
848
848
|
});
|
|
849
849
|
return closeSync
|
|
850
|
-
})(fs$
|
|
850
|
+
})(fs$n.closeSync);
|
|
851
851
|
|
|
852
852
|
if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
|
|
853
853
|
process.on('exit', function() {
|
|
854
|
-
debug$7(fs$
|
|
855
|
-
assert__default["default"].equal(fs$
|
|
854
|
+
debug$7(fs$n[gracefulQueue]);
|
|
855
|
+
assert__default["default"].equal(fs$n[gracefulQueue].length, 0);
|
|
856
856
|
});
|
|
857
857
|
}
|
|
858
858
|
}
|
|
859
859
|
|
|
860
860
|
if (!commonjsGlobal[gracefulQueue]) {
|
|
861
|
-
publishQueue(commonjsGlobal, fs$
|
|
861
|
+
publishQueue(commonjsGlobal, fs$n[gracefulQueue]);
|
|
862
862
|
}
|
|
863
863
|
|
|
864
|
-
var gracefulFs = patch(clone(fs$
|
|
865
|
-
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs$
|
|
866
|
-
gracefulFs = patch(fs$
|
|
867
|
-
fs$
|
|
864
|
+
var gracefulFs = patch(clone(fs$n));
|
|
865
|
+
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs$n.__patched) {
|
|
866
|
+
gracefulFs = patch(fs$n);
|
|
867
|
+
fs$n.__patched = true;
|
|
868
868
|
}
|
|
869
869
|
|
|
870
870
|
function patch (fs) {
|
|
@@ -1138,7 +1138,7 @@ function patch (fs) {
|
|
|
1138
1138
|
|
|
1139
1139
|
function enqueue (elem) {
|
|
1140
1140
|
debug$7('ENQUEUE', elem[0].name, elem[1]);
|
|
1141
|
-
fs$
|
|
1141
|
+
fs$n[gracefulQueue].push(elem);
|
|
1142
1142
|
retry();
|
|
1143
1143
|
}
|
|
1144
1144
|
|
|
@@ -1150,12 +1150,12 @@ var retryTimer;
|
|
|
1150
1150
|
// delay between attempts so that we'll retry these jobs sooner
|
|
1151
1151
|
function resetQueue () {
|
|
1152
1152
|
var now = Date.now();
|
|
1153
|
-
for (var i = 0; i < fs$
|
|
1153
|
+
for (var i = 0; i < fs$n[gracefulQueue].length; ++i) {
|
|
1154
1154
|
// entries that are only a length of 2 are from an older version, don't
|
|
1155
1155
|
// bother modifying those since they'll be retried anyway.
|
|
1156
|
-
if (fs$
|
|
1157
|
-
fs$
|
|
1158
|
-
fs$
|
|
1156
|
+
if (fs$n[gracefulQueue][i].length > 2) {
|
|
1157
|
+
fs$n[gracefulQueue][i][3] = now; // startTime
|
|
1158
|
+
fs$n[gracefulQueue][i][4] = now; // lastTime
|
|
1159
1159
|
}
|
|
1160
1160
|
}
|
|
1161
1161
|
// call retry to make sure we're actively processing the queue
|
|
@@ -1167,10 +1167,10 @@ function retry () {
|
|
|
1167
1167
|
clearTimeout(retryTimer);
|
|
1168
1168
|
retryTimer = undefined;
|
|
1169
1169
|
|
|
1170
|
-
if (fs$
|
|
1170
|
+
if (fs$n[gracefulQueue].length === 0)
|
|
1171
1171
|
return
|
|
1172
1172
|
|
|
1173
|
-
var elem = fs$
|
|
1173
|
+
var elem = fs$n[gracefulQueue].shift();
|
|
1174
1174
|
var fn = elem[0];
|
|
1175
1175
|
var args = elem[1];
|
|
1176
1176
|
// these items may be unset if they were added by an older graceful-fs
|
|
@@ -1205,7 +1205,7 @@ function retry () {
|
|
|
1205
1205
|
} else {
|
|
1206
1206
|
// if we can't do this job yet, push it to the end of the queue
|
|
1207
1207
|
// and let the next iteration check again
|
|
1208
|
-
fs$
|
|
1208
|
+
fs$n[gracefulQueue].push(elem);
|
|
1209
1209
|
}
|
|
1210
1210
|
}
|
|
1211
1211
|
|
|
@@ -1318,7 +1318,7 @@ function retry () {
|
|
|
1318
1318
|
});
|
|
1319
1319
|
})
|
|
1320
1320
|
};
|
|
1321
|
-
} (fs$
|
|
1321
|
+
} (fs$o));
|
|
1322
1322
|
|
|
1323
1323
|
const path$k = path__default["default"];
|
|
1324
1324
|
|
|
@@ -1344,7 +1344,7 @@ var win32 = {
|
|
|
1344
1344
|
invalidWin32Path: invalidWin32Path$2
|
|
1345
1345
|
};
|
|
1346
1346
|
|
|
1347
|
-
const fs$
|
|
1347
|
+
const fs$m = gracefulFs;
|
|
1348
1348
|
const path$j = path__default["default"];
|
|
1349
1349
|
const invalidWin32Path$1 = win32.invalidWin32Path;
|
|
1350
1350
|
|
|
@@ -1365,7 +1365,7 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1365
1365
|
}
|
|
1366
1366
|
|
|
1367
1367
|
let mode = opts.mode;
|
|
1368
|
-
const xfs = opts.fs || fs$
|
|
1368
|
+
const xfs = opts.fs || fs$m;
|
|
1369
1369
|
|
|
1370
1370
|
if (mode === undefined) {
|
|
1371
1371
|
mode = o777$1 & (~process.umask());
|
|
@@ -1406,7 +1406,7 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1406
1406
|
|
|
1407
1407
|
var mkdirs_1$1 = mkdirs$2;
|
|
1408
1408
|
|
|
1409
|
-
const fs$
|
|
1409
|
+
const fs$l = gracefulFs;
|
|
1410
1410
|
const path$i = path__default["default"];
|
|
1411
1411
|
const invalidWin32Path = win32.invalidWin32Path;
|
|
1412
1412
|
|
|
@@ -1418,7 +1418,7 @@ function mkdirsSync$2 (p, opts, made) {
|
|
|
1418
1418
|
}
|
|
1419
1419
|
|
|
1420
1420
|
let mode = opts.mode;
|
|
1421
|
-
const xfs = opts.fs || fs$
|
|
1421
|
+
const xfs = opts.fs || fs$l;
|
|
1422
1422
|
|
|
1423
1423
|
if (process.platform === 'win32' && invalidWin32Path(p)) {
|
|
1424
1424
|
const errInval = new Error(p + ' contains invalid WIN32 path characters.');
|
|
@@ -1473,7 +1473,7 @@ var mkdirs_1 = {
|
|
|
1473
1473
|
ensureDirSync: mkdirsSync$1
|
|
1474
1474
|
};
|
|
1475
1475
|
|
|
1476
|
-
const fs$
|
|
1476
|
+
const fs$k = gracefulFs;
|
|
1477
1477
|
const os = require$$1__default["default"];
|
|
1478
1478
|
const path$h = path__default["default"];
|
|
1479
1479
|
|
|
@@ -1484,11 +1484,11 @@ function hasMillisResSync () {
|
|
|
1484
1484
|
|
|
1485
1485
|
// 550 millis past UNIX epoch
|
|
1486
1486
|
const d = new Date(1435410243862);
|
|
1487
|
-
fs$
|
|
1488
|
-
const fd = fs$
|
|
1489
|
-
fs$
|
|
1490
|
-
fs$
|
|
1491
|
-
return fs$
|
|
1487
|
+
fs$k.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141');
|
|
1488
|
+
const fd = fs$k.openSync(tmpfile, 'r+');
|
|
1489
|
+
fs$k.futimesSync(fd, d, d);
|
|
1490
|
+
fs$k.closeSync(fd);
|
|
1491
|
+
return fs$k.statSync(tmpfile).mtime > 1435410243000
|
|
1492
1492
|
}
|
|
1493
1493
|
|
|
1494
1494
|
function hasMillisRes (callback) {
|
|
@@ -1497,15 +1497,15 @@ function hasMillisRes (callback) {
|
|
|
1497
1497
|
|
|
1498
1498
|
// 550 millis past UNIX epoch
|
|
1499
1499
|
const d = new Date(1435410243862);
|
|
1500
|
-
fs$
|
|
1500
|
+
fs$k.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {
|
|
1501
1501
|
if (err) return callback(err)
|
|
1502
|
-
fs$
|
|
1502
|
+
fs$k.open(tmpfile, 'r+', (err, fd) => {
|
|
1503
1503
|
if (err) return callback(err)
|
|
1504
|
-
fs$
|
|
1504
|
+
fs$k.futimes(fd, d, d, err => {
|
|
1505
1505
|
if (err) return callback(err)
|
|
1506
|
-
fs$
|
|
1506
|
+
fs$k.close(fd, err => {
|
|
1507
1507
|
if (err) return callback(err)
|
|
1508
|
-
fs$
|
|
1508
|
+
fs$k.stat(tmpfile, (err, stats) => {
|
|
1509
1509
|
if (err) return callback(err)
|
|
1510
1510
|
callback(null, stats.mtime > 1435410243000);
|
|
1511
1511
|
});
|
|
@@ -1527,10 +1527,10 @@ function timeRemoveMillis (timestamp) {
|
|
|
1527
1527
|
|
|
1528
1528
|
function utimesMillis (path, atime, mtime, callback) {
|
|
1529
1529
|
// if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
|
|
1530
|
-
fs$
|
|
1530
|
+
fs$k.open(path, 'r+', (err, fd) => {
|
|
1531
1531
|
if (err) return callback(err)
|
|
1532
|
-
fs$
|
|
1533
|
-
fs$
|
|
1532
|
+
fs$k.futimes(fd, atime, mtime, futimesErr => {
|
|
1533
|
+
fs$k.close(fd, closeErr => {
|
|
1534
1534
|
if (callback) callback(futimesErr || closeErr);
|
|
1535
1535
|
});
|
|
1536
1536
|
});
|
|
@@ -1538,9 +1538,9 @@ function utimesMillis (path, atime, mtime, callback) {
|
|
|
1538
1538
|
}
|
|
1539
1539
|
|
|
1540
1540
|
function utimesMillisSync (path, atime, mtime) {
|
|
1541
|
-
const fd = fs$
|
|
1542
|
-
fs$
|
|
1543
|
-
return fs$
|
|
1541
|
+
const fd = fs$k.openSync(path, 'r+');
|
|
1542
|
+
fs$k.futimesSync(fd, atime, mtime);
|
|
1543
|
+
return fs$k.closeSync(fd)
|
|
1544
1544
|
}
|
|
1545
1545
|
|
|
1546
1546
|
var utimes$1 = {
|
|
@@ -1563,7 +1563,7 @@ var buffer$1 = function (size) {
|
|
|
1563
1563
|
return new Buffer(size)
|
|
1564
1564
|
};
|
|
1565
1565
|
|
|
1566
|
-
const fs$
|
|
1566
|
+
const fs$j = gracefulFs;
|
|
1567
1567
|
const path$g = path__default["default"];
|
|
1568
1568
|
const mkdirpSync$1 = mkdirs_1.mkdirsSync;
|
|
1569
1569
|
const utimesSync = utimes$1.utimesMillisSync;
|
|
@@ -1591,7 +1591,7 @@ function copySync$2 (src, dest, opts) {
|
|
|
1591
1591
|
if (opts.filter && !opts.filter(src, dest)) return
|
|
1592
1592
|
|
|
1593
1593
|
const destParent = path$g.dirname(dest);
|
|
1594
|
-
if (!fs$
|
|
1594
|
+
if (!fs$j.existsSync(destParent)) mkdirpSync$1(destParent);
|
|
1595
1595
|
return startCopy$1(resolvedDest, src, dest, opts)
|
|
1596
1596
|
}
|
|
1597
1597
|
|
|
@@ -1601,7 +1601,7 @@ function startCopy$1 (resolvedDest, src, dest, opts) {
|
|
|
1601
1601
|
}
|
|
1602
1602
|
|
|
1603
1603
|
function getStats$1 (resolvedDest, src, dest, opts) {
|
|
1604
|
-
const statSync = opts.dereference ? fs$
|
|
1604
|
+
const statSync = opts.dereference ? fs$j.statSync : fs$j.lstatSync;
|
|
1605
1605
|
const st = statSync(src);
|
|
1606
1606
|
|
|
1607
1607
|
if (st.isDirectory()) return onDir$1(st, resolvedDest, src, dest, opts)
|
|
@@ -1619,7 +1619,7 @@ function onFile$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
|
1619
1619
|
|
|
1620
1620
|
function mayCopyFile$1 (srcStat, src, dest, opts) {
|
|
1621
1621
|
if (opts.overwrite) {
|
|
1622
|
-
fs$
|
|
1622
|
+
fs$j.unlinkSync(dest);
|
|
1623
1623
|
return copyFile$1(srcStat, src, dest, opts)
|
|
1624
1624
|
} else if (opts.errorOnExist) {
|
|
1625
1625
|
throw new Error(`'${dest}' already exists`)
|
|
@@ -1627,9 +1627,9 @@ function mayCopyFile$1 (srcStat, src, dest, opts) {
|
|
|
1627
1627
|
}
|
|
1628
1628
|
|
|
1629
1629
|
function copyFile$1 (srcStat, src, dest, opts) {
|
|
1630
|
-
if (typeof fs$
|
|
1631
|
-
fs$
|
|
1632
|
-
fs$
|
|
1630
|
+
if (typeof fs$j.copyFileSync === 'function') {
|
|
1631
|
+
fs$j.copyFileSync(src, dest);
|
|
1632
|
+
fs$j.chmodSync(dest, srcStat.mode);
|
|
1633
1633
|
if (opts.preserveTimestamps) {
|
|
1634
1634
|
return utimesSync(dest, srcStat.atime, srcStat.mtime)
|
|
1635
1635
|
}
|
|
@@ -1642,20 +1642,20 @@ function copyFileFallback$1 (srcStat, src, dest, opts) {
|
|
|
1642
1642
|
const BUF_LENGTH = 64 * 1024;
|
|
1643
1643
|
const _buff = buffer$1(BUF_LENGTH);
|
|
1644
1644
|
|
|
1645
|
-
const fdr = fs$
|
|
1646
|
-
const fdw = fs$
|
|
1645
|
+
const fdr = fs$j.openSync(src, 'r');
|
|
1646
|
+
const fdw = fs$j.openSync(dest, 'w', srcStat.mode);
|
|
1647
1647
|
let pos = 0;
|
|
1648
1648
|
|
|
1649
1649
|
while (pos < srcStat.size) {
|
|
1650
|
-
const bytesRead = fs$
|
|
1651
|
-
fs$
|
|
1650
|
+
const bytesRead = fs$j.readSync(fdr, _buff, 0, BUF_LENGTH, pos);
|
|
1651
|
+
fs$j.writeSync(fdw, _buff, 0, bytesRead);
|
|
1652
1652
|
pos += bytesRead;
|
|
1653
1653
|
}
|
|
1654
1654
|
|
|
1655
|
-
if (opts.preserveTimestamps) fs$
|
|
1655
|
+
if (opts.preserveTimestamps) fs$j.futimesSync(fdw, srcStat.atime, srcStat.mtime);
|
|
1656
1656
|
|
|
1657
|
-
fs$
|
|
1658
|
-
fs$
|
|
1657
|
+
fs$j.closeSync(fdr);
|
|
1658
|
+
fs$j.closeSync(fdw);
|
|
1659
1659
|
}
|
|
1660
1660
|
|
|
1661
1661
|
function onDir$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
@@ -1674,20 +1674,20 @@ function onDir$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
|
1674
1674
|
}
|
|
1675
1675
|
|
|
1676
1676
|
function mayCopyDir$1 (src, dest, opts) {
|
|
1677
|
-
if (!fs$
|
|
1677
|
+
if (!fs$j.statSync(dest).isDirectory()) {
|
|
1678
1678
|
throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
|
|
1679
1679
|
}
|
|
1680
1680
|
return copyDir$1(src, dest, opts)
|
|
1681
1681
|
}
|
|
1682
1682
|
|
|
1683
1683
|
function mkDirAndCopy$1 (srcStat, src, dest, opts) {
|
|
1684
|
-
fs$
|
|
1685
|
-
fs$
|
|
1684
|
+
fs$j.mkdirSync(dest, srcStat.mode);
|
|
1685
|
+
fs$j.chmodSync(dest, srcStat.mode);
|
|
1686
1686
|
return copyDir$1(src, dest, opts)
|
|
1687
1687
|
}
|
|
1688
1688
|
|
|
1689
1689
|
function copyDir$1 (src, dest, opts) {
|
|
1690
|
-
fs$
|
|
1690
|
+
fs$j.readdirSync(src).forEach(item => copyDirItem$1(item, src, dest, opts));
|
|
1691
1691
|
}
|
|
1692
1692
|
|
|
1693
1693
|
function copyDirItem$1 (item, src, dest, opts) {
|
|
@@ -1698,7 +1698,7 @@ function copyDirItem$1 (item, src, dest, opts) {
|
|
|
1698
1698
|
}
|
|
1699
1699
|
|
|
1700
1700
|
function onLink$1 (resolvedDest, src, dest, opts) {
|
|
1701
|
-
let resolvedSrc = fs$
|
|
1701
|
+
let resolvedSrc = fs$j.readlinkSync(src);
|
|
1702
1702
|
|
|
1703
1703
|
if (opts.dereference) {
|
|
1704
1704
|
resolvedSrc = path$g.resolve(process.cwd(), resolvedSrc);
|
|
@@ -1707,7 +1707,7 @@ function onLink$1 (resolvedDest, src, dest, opts) {
|
|
|
1707
1707
|
if (resolvedDest === notExist$1 || resolvedDest === existsReg$1) {
|
|
1708
1708
|
// if dest already exists, fs throws error anyway,
|
|
1709
1709
|
// so no need to guard against it here.
|
|
1710
|
-
return fs$
|
|
1710
|
+
return fs$j.symlinkSync(resolvedSrc, dest)
|
|
1711
1711
|
} else {
|
|
1712
1712
|
if (opts.dereference) {
|
|
1713
1713
|
resolvedDest = path$g.resolve(process.cwd(), resolvedDest);
|
|
@@ -1717,7 +1717,7 @@ function onLink$1 (resolvedDest, src, dest, opts) {
|
|
|
1717
1717
|
// prevent copy if src is a subdir of dest since unlinking
|
|
1718
1718
|
// dest in this case would result in removing src contents
|
|
1719
1719
|
// and therefore a broken symlink would be created.
|
|
1720
|
-
if (fs$
|
|
1720
|
+
if (fs$j.statSync(dest).isDirectory() && isSrcSubdir$3(resolvedDest, resolvedSrc)) {
|
|
1721
1721
|
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
|
1722
1722
|
}
|
|
1723
1723
|
return copyLink$1(resolvedSrc, dest)
|
|
@@ -1725,8 +1725,8 @@ function onLink$1 (resolvedDest, src, dest, opts) {
|
|
|
1725
1725
|
}
|
|
1726
1726
|
|
|
1727
1727
|
function copyLink$1 (resolvedSrc, dest) {
|
|
1728
|
-
fs$
|
|
1729
|
-
return fs$
|
|
1728
|
+
fs$j.unlinkSync(dest);
|
|
1729
|
+
return fs$j.symlinkSync(resolvedSrc, dest)
|
|
1730
1730
|
}
|
|
1731
1731
|
|
|
1732
1732
|
// return true if dest is a subdir of src, otherwise false.
|
|
@@ -1744,7 +1744,7 @@ function isSrcSubdir$3 (src, dest) {
|
|
|
1744
1744
|
function checkDest$1 (dest) {
|
|
1745
1745
|
let resolvedPath;
|
|
1746
1746
|
try {
|
|
1747
|
-
resolvedPath = fs$
|
|
1747
|
+
resolvedPath = fs$j.readlinkSync(dest);
|
|
1748
1748
|
} catch (err) {
|
|
1749
1749
|
if (err.code === 'ENOENT') return notExist$1
|
|
1750
1750
|
|
|
@@ -1786,18 +1786,18 @@ var copySync$1 = {
|
|
|
1786
1786
|
};
|
|
1787
1787
|
|
|
1788
1788
|
const u$a = universalify.fromPromise;
|
|
1789
|
-
const fs$
|
|
1789
|
+
const fs$i = fs$o;
|
|
1790
1790
|
|
|
1791
1791
|
function pathExists$8 (path) {
|
|
1792
|
-
return fs$
|
|
1792
|
+
return fs$i.access(path).then(() => true).catch(() => false)
|
|
1793
1793
|
}
|
|
1794
1794
|
|
|
1795
1795
|
var pathExists_1 = {
|
|
1796
1796
|
pathExists: u$a(pathExists$8),
|
|
1797
|
-
pathExistsSync: fs$
|
|
1797
|
+
pathExistsSync: fs$i.existsSync
|
|
1798
1798
|
};
|
|
1799
1799
|
|
|
1800
|
-
const fs$
|
|
1800
|
+
const fs$h = gracefulFs;
|
|
1801
1801
|
const path$f = path__default["default"];
|
|
1802
1802
|
const mkdirp$1 = mkdirs_1.mkdirs;
|
|
1803
1803
|
const pathExists$7 = pathExists_1.pathExists;
|
|
@@ -1861,7 +1861,7 @@ function handleFilter (onInclude, resolvedDest, src, dest, opts, cb) {
|
|
|
1861
1861
|
}
|
|
1862
1862
|
|
|
1863
1863
|
function getStats (resolvedDest, src, dest, opts, cb) {
|
|
1864
|
-
const stat = opts.dereference ? fs$
|
|
1864
|
+
const stat = opts.dereference ? fs$h.stat : fs$h.lstat;
|
|
1865
1865
|
stat(src, (err, st) => {
|
|
1866
1866
|
if (err) return cb(err)
|
|
1867
1867
|
|
|
@@ -1881,7 +1881,7 @@ function onFile (srcStat, resolvedDest, src, dest, opts, cb) {
|
|
|
1881
1881
|
|
|
1882
1882
|
function mayCopyFile (srcStat, src, dest, opts, cb) {
|
|
1883
1883
|
if (opts.overwrite) {
|
|
1884
|
-
fs$
|
|
1884
|
+
fs$h.unlink(dest, err => {
|
|
1885
1885
|
if (err) return cb(err)
|
|
1886
1886
|
return copyFile(srcStat, src, dest, opts, cb)
|
|
1887
1887
|
});
|
|
@@ -1891,8 +1891,8 @@ function mayCopyFile (srcStat, src, dest, opts, cb) {
|
|
|
1891
1891
|
}
|
|
1892
1892
|
|
|
1893
1893
|
function copyFile (srcStat, src, dest, opts, cb) {
|
|
1894
|
-
if (typeof fs$
|
|
1895
|
-
return fs$
|
|
1894
|
+
if (typeof fs$h.copyFile === 'function') {
|
|
1895
|
+
return fs$h.copyFile(src, dest, err => {
|
|
1896
1896
|
if (err) return cb(err)
|
|
1897
1897
|
return setDestModeAndTimestamps(srcStat, dest, opts, cb)
|
|
1898
1898
|
})
|
|
@@ -1901,9 +1901,9 @@ function copyFile (srcStat, src, dest, opts, cb) {
|
|
|
1901
1901
|
}
|
|
1902
1902
|
|
|
1903
1903
|
function copyFileFallback (srcStat, src, dest, opts, cb) {
|
|
1904
|
-
const rs = fs$
|
|
1904
|
+
const rs = fs$h.createReadStream(src);
|
|
1905
1905
|
rs.on('error', err => cb(err)).once('open', () => {
|
|
1906
|
-
const ws = fs$
|
|
1906
|
+
const ws = fs$h.createWriteStream(dest, { mode: srcStat.mode });
|
|
1907
1907
|
ws.on('error', err => cb(err))
|
|
1908
1908
|
.on('open', () => rs.pipe(ws))
|
|
1909
1909
|
.once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb));
|
|
@@ -1911,7 +1911,7 @@ function copyFileFallback (srcStat, src, dest, opts, cb) {
|
|
|
1911
1911
|
}
|
|
1912
1912
|
|
|
1913
1913
|
function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
|
|
1914
|
-
fs$
|
|
1914
|
+
fs$h.chmod(dest, srcStat.mode, err => {
|
|
1915
1915
|
if (err) return cb(err)
|
|
1916
1916
|
if (opts.preserveTimestamps) {
|
|
1917
1917
|
return utimes(dest, srcStat.atime, srcStat.mtime, cb)
|
|
@@ -1936,7 +1936,7 @@ function onDir (srcStat, resolvedDest, src, dest, opts, cb) {
|
|
|
1936
1936
|
}
|
|
1937
1937
|
|
|
1938
1938
|
function mayCopyDir (src, dest, opts, cb) {
|
|
1939
|
-
fs$
|
|
1939
|
+
fs$h.stat(dest, (err, st) => {
|
|
1940
1940
|
if (err) return cb(err)
|
|
1941
1941
|
if (!st.isDirectory()) {
|
|
1942
1942
|
return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
|
|
@@ -1946,9 +1946,9 @@ function mayCopyDir (src, dest, opts, cb) {
|
|
|
1946
1946
|
}
|
|
1947
1947
|
|
|
1948
1948
|
function mkDirAndCopy (srcStat, src, dest, opts, cb) {
|
|
1949
|
-
fs$
|
|
1949
|
+
fs$h.mkdir(dest, srcStat.mode, err => {
|
|
1950
1950
|
if (err) return cb(err)
|
|
1951
|
-
fs$
|
|
1951
|
+
fs$h.chmod(dest, srcStat.mode, err => {
|
|
1952
1952
|
if (err) return cb(err)
|
|
1953
1953
|
return copyDir(src, dest, opts, cb)
|
|
1954
1954
|
});
|
|
@@ -1956,7 +1956,7 @@ function mkDirAndCopy (srcStat, src, dest, opts, cb) {
|
|
|
1956
1956
|
}
|
|
1957
1957
|
|
|
1958
1958
|
function copyDir (src, dest, opts, cb) {
|
|
1959
|
-
fs$
|
|
1959
|
+
fs$h.readdir(src, (err, items) => {
|
|
1960
1960
|
if (err) return cb(err)
|
|
1961
1961
|
return copyDirItems(items, src, dest, opts, cb)
|
|
1962
1962
|
});
|
|
@@ -1981,7 +1981,7 @@ function copyDirItem (items, item, src, dest, opts, cb) {
|
|
|
1981
1981
|
}
|
|
1982
1982
|
|
|
1983
1983
|
function onLink (resolvedDest, src, dest, opts, cb) {
|
|
1984
|
-
fs$
|
|
1984
|
+
fs$h.readlink(src, (err, resolvedSrc) => {
|
|
1985
1985
|
if (err) return cb(err)
|
|
1986
1986
|
|
|
1987
1987
|
if (opts.dereference) {
|
|
@@ -1991,7 +1991,7 @@ function onLink (resolvedDest, src, dest, opts, cb) {
|
|
|
1991
1991
|
if (resolvedDest === notExist || resolvedDest === existsReg) {
|
|
1992
1992
|
// if dest already exists, fs throws error anyway,
|
|
1993
1993
|
// so no need to guard against it here.
|
|
1994
|
-
return fs$
|
|
1994
|
+
return fs$h.symlink(resolvedSrc, dest, cb)
|
|
1995
1995
|
} else {
|
|
1996
1996
|
if (opts.dereference) {
|
|
1997
1997
|
resolvedDest = path$f.resolve(process.cwd(), resolvedDest);
|
|
@@ -2001,7 +2001,7 @@ function onLink (resolvedDest, src, dest, opts, cb) {
|
|
|
2001
2001
|
// prevent copy if src is a subdir of dest since unlinking
|
|
2002
2002
|
// dest in this case would result in removing src contents
|
|
2003
2003
|
// and therefore a broken symlink would be created.
|
|
2004
|
-
fs$
|
|
2004
|
+
fs$h.stat(dest, (err, st) => {
|
|
2005
2005
|
if (err) return cb(err)
|
|
2006
2006
|
if (st.isDirectory() && isSrcSubdir$2(resolvedDest, resolvedSrc)) {
|
|
2007
2007
|
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
|
|
@@ -2013,9 +2013,9 @@ function onLink (resolvedDest, src, dest, opts, cb) {
|
|
|
2013
2013
|
}
|
|
2014
2014
|
|
|
2015
2015
|
function copyLink (resolvedSrc, dest, cb) {
|
|
2016
|
-
fs$
|
|
2016
|
+
fs$h.unlink(dest, err => {
|
|
2017
2017
|
if (err) return cb(err)
|
|
2018
|
-
return fs$
|
|
2018
|
+
return fs$h.symlink(resolvedSrc, dest, cb)
|
|
2019
2019
|
});
|
|
2020
2020
|
}
|
|
2021
2021
|
|
|
@@ -2032,7 +2032,7 @@ function isSrcSubdir$2 (src, dest) {
|
|
|
2032
2032
|
|
|
2033
2033
|
// check if dest exists and is a symlink.
|
|
2034
2034
|
function checkDest (dest, cb) {
|
|
2035
|
-
fs$
|
|
2035
|
+
fs$h.readlink(dest, (err, resolvedPath) => {
|
|
2036
2036
|
if (err) {
|
|
2037
2037
|
if (err.code === 'ENOENT') return cb(null, notExist)
|
|
2038
2038
|
|
|
@@ -2077,7 +2077,7 @@ var copy$1 = {
|
|
|
2077
2077
|
copy: u$9(copy_1)
|
|
2078
2078
|
};
|
|
2079
2079
|
|
|
2080
|
-
const fs$
|
|
2080
|
+
const fs$g = gracefulFs;
|
|
2081
2081
|
const path$e = path__default["default"];
|
|
2082
2082
|
const assert = assert__default["default"];
|
|
2083
2083
|
|
|
@@ -2093,9 +2093,9 @@ function defaults$2 (options) {
|
|
|
2093
2093
|
'readdir'
|
|
2094
2094
|
];
|
|
2095
2095
|
methods.forEach(m => {
|
|
2096
|
-
options[m] = options[m] || fs$
|
|
2096
|
+
options[m] = options[m] || fs$g[m];
|
|
2097
2097
|
m = m + 'Sync';
|
|
2098
|
-
options[m] = options[m] || fs$
|
|
2098
|
+
options[m] = options[m] || fs$g[m];
|
|
2099
2099
|
});
|
|
2100
2100
|
|
|
2101
2101
|
options.maxBusyTries = options.maxBusyTries || 3;
|
|
@@ -2399,14 +2399,14 @@ var remove$2 = {
|
|
|
2399
2399
|
};
|
|
2400
2400
|
|
|
2401
2401
|
const u$7 = universalify.fromCallback;
|
|
2402
|
-
const fs$
|
|
2402
|
+
const fs$f = fs__default["default"];
|
|
2403
2403
|
const path$d = path__default["default"];
|
|
2404
2404
|
const mkdir$5 = mkdirs_1;
|
|
2405
2405
|
const remove$1 = remove$2;
|
|
2406
2406
|
|
|
2407
2407
|
const emptyDir = u$7(function emptyDir (dir, callback) {
|
|
2408
2408
|
callback = callback || function () {};
|
|
2409
|
-
fs$
|
|
2409
|
+
fs$f.readdir(dir, (err, items) => {
|
|
2410
2410
|
if (err) return mkdir$5.mkdirs(dir, callback)
|
|
2411
2411
|
|
|
2412
2412
|
items = items.map(item => path$d.join(dir, item));
|
|
@@ -2427,7 +2427,7 @@ const emptyDir = u$7(function emptyDir (dir, callback) {
|
|
|
2427
2427
|
function emptyDirSync (dir) {
|
|
2428
2428
|
let items;
|
|
2429
2429
|
try {
|
|
2430
|
-
items = fs$
|
|
2430
|
+
items = fs$f.readdirSync(dir);
|
|
2431
2431
|
} catch (err) {
|
|
2432
2432
|
return mkdir$5.mkdirsSync(dir)
|
|
2433
2433
|
}
|
|
@@ -2447,19 +2447,19 @@ var empty = {
|
|
|
2447
2447
|
|
|
2448
2448
|
const u$6 = universalify.fromCallback;
|
|
2449
2449
|
const path$c = path__default["default"];
|
|
2450
|
-
const fs$
|
|
2450
|
+
const fs$e = gracefulFs;
|
|
2451
2451
|
const mkdir$4 = mkdirs_1;
|
|
2452
2452
|
const pathExists$6 = pathExists_1.pathExists;
|
|
2453
2453
|
|
|
2454
|
-
function createFile (file, callback) {
|
|
2454
|
+
function createFile$1 (file, callback) {
|
|
2455
2455
|
function makeFile () {
|
|
2456
|
-
fs$
|
|
2456
|
+
fs$e.writeFile(file, '', err => {
|
|
2457
2457
|
if (err) return callback(err)
|
|
2458
2458
|
callback();
|
|
2459
2459
|
});
|
|
2460
2460
|
}
|
|
2461
2461
|
|
|
2462
|
-
fs$
|
|
2462
|
+
fs$e.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
|
|
2463
2463
|
if (!err && stats.isFile()) return callback()
|
|
2464
2464
|
const dir = path$c.dirname(file);
|
|
2465
2465
|
pathExists$6(dir, (err, dirExists) => {
|
|
@@ -2473,35 +2473,35 @@ function createFile (file, callback) {
|
|
|
2473
2473
|
});
|
|
2474
2474
|
}
|
|
2475
2475
|
|
|
2476
|
-
function createFileSync (file) {
|
|
2476
|
+
function createFileSync$1 (file) {
|
|
2477
2477
|
let stats;
|
|
2478
2478
|
try {
|
|
2479
|
-
stats = fs$
|
|
2479
|
+
stats = fs$e.statSync(file);
|
|
2480
2480
|
} catch (e) {}
|
|
2481
2481
|
if (stats && stats.isFile()) return
|
|
2482
2482
|
|
|
2483
2483
|
const dir = path$c.dirname(file);
|
|
2484
|
-
if (!fs$
|
|
2484
|
+
if (!fs$e.existsSync(dir)) {
|
|
2485
2485
|
mkdir$4.mkdirsSync(dir);
|
|
2486
2486
|
}
|
|
2487
2487
|
|
|
2488
|
-
fs$
|
|
2488
|
+
fs$e.writeFileSync(file, '');
|
|
2489
2489
|
}
|
|
2490
2490
|
|
|
2491
|
-
var file$
|
|
2492
|
-
createFile: u$6(createFile),
|
|
2493
|
-
createFileSync
|
|
2491
|
+
var file$1 = {
|
|
2492
|
+
createFile: u$6(createFile$1),
|
|
2493
|
+
createFileSync: createFileSync$1
|
|
2494
2494
|
};
|
|
2495
2495
|
|
|
2496
2496
|
const u$5 = universalify.fromCallback;
|
|
2497
2497
|
const path$b = path__default["default"];
|
|
2498
|
-
const fs$
|
|
2498
|
+
const fs$d = gracefulFs;
|
|
2499
2499
|
const mkdir$3 = mkdirs_1;
|
|
2500
2500
|
const pathExists$5 = pathExists_1.pathExists;
|
|
2501
2501
|
|
|
2502
2502
|
function createLink (srcpath, dstpath, callback) {
|
|
2503
2503
|
function makeLink (srcpath, dstpath) {
|
|
2504
|
-
fs$
|
|
2504
|
+
fs$d.link(srcpath, dstpath, err => {
|
|
2505
2505
|
if (err) return callback(err)
|
|
2506
2506
|
callback(null);
|
|
2507
2507
|
});
|
|
@@ -2510,7 +2510,7 @@ function createLink (srcpath, dstpath, callback) {
|
|
|
2510
2510
|
pathExists$5(dstpath, (err, destinationExists) => {
|
|
2511
2511
|
if (err) return callback(err)
|
|
2512
2512
|
if (destinationExists) return callback(null)
|
|
2513
|
-
fs$
|
|
2513
|
+
fs$d.lstat(srcpath, (err) => {
|
|
2514
2514
|
if (err) {
|
|
2515
2515
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
2516
2516
|
return callback(err)
|
|
@@ -2530,22 +2530,22 @@ function createLink (srcpath, dstpath, callback) {
|
|
|
2530
2530
|
}
|
|
2531
2531
|
|
|
2532
2532
|
function createLinkSync (srcpath, dstpath) {
|
|
2533
|
-
const destinationExists = fs$
|
|
2533
|
+
const destinationExists = fs$d.existsSync(dstpath);
|
|
2534
2534
|
if (destinationExists) return undefined
|
|
2535
2535
|
|
|
2536
2536
|
try {
|
|
2537
|
-
fs$
|
|
2537
|
+
fs$d.lstatSync(srcpath);
|
|
2538
2538
|
} catch (err) {
|
|
2539
2539
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
2540
2540
|
throw err
|
|
2541
2541
|
}
|
|
2542
2542
|
|
|
2543
2543
|
const dir = path$b.dirname(dstpath);
|
|
2544
|
-
const dirExists = fs$
|
|
2545
|
-
if (dirExists) return fs$
|
|
2544
|
+
const dirExists = fs$d.existsSync(dir);
|
|
2545
|
+
if (dirExists) return fs$d.linkSync(srcpath, dstpath)
|
|
2546
2546
|
mkdir$3.mkdirsSync(dir);
|
|
2547
2547
|
|
|
2548
|
-
return fs$
|
|
2548
|
+
return fs$d.linkSync(srcpath, dstpath)
|
|
2549
2549
|
}
|
|
2550
2550
|
|
|
2551
2551
|
var link$1 = {
|
|
@@ -2554,7 +2554,7 @@ var link$1 = {
|
|
|
2554
2554
|
};
|
|
2555
2555
|
|
|
2556
2556
|
const path$a = path__default["default"];
|
|
2557
|
-
const fs$
|
|
2557
|
+
const fs$c = gracefulFs;
|
|
2558
2558
|
const pathExists$4 = pathExists_1.pathExists;
|
|
2559
2559
|
|
|
2560
2560
|
/**
|
|
@@ -2581,7 +2581,7 @@ const pathExists$4 = pathExists_1.pathExists;
|
|
|
2581
2581
|
|
|
2582
2582
|
function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
2583
2583
|
if (path$a.isAbsolute(srcpath)) {
|
|
2584
|
-
return fs$
|
|
2584
|
+
return fs$c.lstat(srcpath, (err) => {
|
|
2585
2585
|
if (err) {
|
|
2586
2586
|
err.message = err.message.replace('lstat', 'ensureSymlink');
|
|
2587
2587
|
return callback(err)
|
|
@@ -2602,7 +2602,7 @@ function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
|
2602
2602
|
'toDst': srcpath
|
|
2603
2603
|
})
|
|
2604
2604
|
} else {
|
|
2605
|
-
return fs$
|
|
2605
|
+
return fs$c.lstat(srcpath, (err) => {
|
|
2606
2606
|
if (err) {
|
|
2607
2607
|
err.message = err.message.replace('lstat', 'ensureSymlink');
|
|
2608
2608
|
return callback(err)
|
|
@@ -2620,7 +2620,7 @@ function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
|
2620
2620
|
function symlinkPathsSync$1 (srcpath, dstpath) {
|
|
2621
2621
|
let exists;
|
|
2622
2622
|
if (path$a.isAbsolute(srcpath)) {
|
|
2623
|
-
exists = fs$
|
|
2623
|
+
exists = fs$c.existsSync(srcpath);
|
|
2624
2624
|
if (!exists) throw new Error('absolute srcpath does not exist')
|
|
2625
2625
|
return {
|
|
2626
2626
|
'toCwd': srcpath,
|
|
@@ -2629,14 +2629,14 @@ function symlinkPathsSync$1 (srcpath, dstpath) {
|
|
|
2629
2629
|
} else {
|
|
2630
2630
|
const dstdir = path$a.dirname(dstpath);
|
|
2631
2631
|
const relativeToDst = path$a.join(dstdir, srcpath);
|
|
2632
|
-
exists = fs$
|
|
2632
|
+
exists = fs$c.existsSync(relativeToDst);
|
|
2633
2633
|
if (exists) {
|
|
2634
2634
|
return {
|
|
2635
2635
|
'toCwd': relativeToDst,
|
|
2636
2636
|
'toDst': srcpath
|
|
2637
2637
|
}
|
|
2638
2638
|
} else {
|
|
2639
|
-
exists = fs$
|
|
2639
|
+
exists = fs$c.existsSync(srcpath);
|
|
2640
2640
|
if (!exists) throw new Error('relative srcpath does not exist')
|
|
2641
2641
|
return {
|
|
2642
2642
|
'toCwd': srcpath,
|
|
@@ -2651,13 +2651,13 @@ var symlinkPaths_1 = {
|
|
|
2651
2651
|
symlinkPathsSync: symlinkPathsSync$1
|
|
2652
2652
|
};
|
|
2653
2653
|
|
|
2654
|
-
const fs$
|
|
2654
|
+
const fs$b = gracefulFs;
|
|
2655
2655
|
|
|
2656
2656
|
function symlinkType$1 (srcpath, type, callback) {
|
|
2657
2657
|
callback = (typeof type === 'function') ? type : callback;
|
|
2658
2658
|
type = (typeof type === 'function') ? false : type;
|
|
2659
2659
|
if (type) return callback(null, type)
|
|
2660
|
-
fs$
|
|
2660
|
+
fs$b.lstat(srcpath, (err, stats) => {
|
|
2661
2661
|
if (err) return callback(null, 'file')
|
|
2662
2662
|
type = (stats && stats.isDirectory()) ? 'dir' : 'file';
|
|
2663
2663
|
callback(null, type);
|
|
@@ -2669,7 +2669,7 @@ function symlinkTypeSync$1 (srcpath, type) {
|
|
|
2669
2669
|
|
|
2670
2670
|
if (type) return type
|
|
2671
2671
|
try {
|
|
2672
|
-
stats = fs$
|
|
2672
|
+
stats = fs$b.lstatSync(srcpath);
|
|
2673
2673
|
} catch (e) {
|
|
2674
2674
|
return 'file'
|
|
2675
2675
|
}
|
|
@@ -2683,7 +2683,7 @@ var symlinkType_1 = {
|
|
|
2683
2683
|
|
|
2684
2684
|
const u$4 = universalify.fromCallback;
|
|
2685
2685
|
const path$9 = path__default["default"];
|
|
2686
|
-
const fs$
|
|
2686
|
+
const fs$a = gracefulFs;
|
|
2687
2687
|
const _mkdirs = mkdirs_1;
|
|
2688
2688
|
const mkdirs = _mkdirs.mkdirs;
|
|
2689
2689
|
const mkdirsSync = _mkdirs.mkdirsSync;
|
|
@@ -2713,10 +2713,10 @@ function createSymlink (srcpath, dstpath, type, callback) {
|
|
|
2713
2713
|
const dir = path$9.dirname(dstpath);
|
|
2714
2714
|
pathExists$3(dir, (err, dirExists) => {
|
|
2715
2715
|
if (err) return callback(err)
|
|
2716
|
-
if (dirExists) return fs$
|
|
2716
|
+
if (dirExists) return fs$a.symlink(srcpath, dstpath, type, callback)
|
|
2717
2717
|
mkdirs(dir, err => {
|
|
2718
2718
|
if (err) return callback(err)
|
|
2719
|
-
fs$
|
|
2719
|
+
fs$a.symlink(srcpath, dstpath, type, callback);
|
|
2720
2720
|
});
|
|
2721
2721
|
});
|
|
2722
2722
|
});
|
|
@@ -2725,17 +2725,17 @@ function createSymlink (srcpath, dstpath, type, callback) {
|
|
|
2725
2725
|
}
|
|
2726
2726
|
|
|
2727
2727
|
function createSymlinkSync (srcpath, dstpath, type) {
|
|
2728
|
-
const destinationExists = fs$
|
|
2728
|
+
const destinationExists = fs$a.existsSync(dstpath);
|
|
2729
2729
|
if (destinationExists) return undefined
|
|
2730
2730
|
|
|
2731
2731
|
const relative = symlinkPathsSync(srcpath, dstpath);
|
|
2732
2732
|
srcpath = relative.toDst;
|
|
2733
2733
|
type = symlinkTypeSync(relative.toCwd, type);
|
|
2734
2734
|
const dir = path$9.dirname(dstpath);
|
|
2735
|
-
const exists = fs$
|
|
2736
|
-
if (exists) return fs$
|
|
2735
|
+
const exists = fs$a.existsSync(dir);
|
|
2736
|
+
if (exists) return fs$a.symlinkSync(srcpath, dstpath, type)
|
|
2737
2737
|
mkdirsSync(dir);
|
|
2738
|
-
return fs$
|
|
2738
|
+
return fs$a.symlinkSync(srcpath, dstpath, type)
|
|
2739
2739
|
}
|
|
2740
2740
|
|
|
2741
2741
|
var symlink$1 = {
|
|
@@ -2743,16 +2743,16 @@ var symlink$1 = {
|
|
|
2743
2743
|
createSymlinkSync
|
|
2744
2744
|
};
|
|
2745
2745
|
|
|
2746
|
-
const file
|
|
2746
|
+
const file = file$1;
|
|
2747
2747
|
const link = link$1;
|
|
2748
2748
|
const symlink = symlink$1;
|
|
2749
2749
|
|
|
2750
2750
|
var ensure = {
|
|
2751
2751
|
// file
|
|
2752
|
-
createFile: file
|
|
2753
|
-
createFileSync: file
|
|
2754
|
-
ensureFile: file
|
|
2755
|
-
ensureFileSync: file
|
|
2752
|
+
createFile: file.createFile,
|
|
2753
|
+
createFileSync: file.createFileSync,
|
|
2754
|
+
ensureFile: file.createFile,
|
|
2755
|
+
ensureFileSync: file.createFileSync,
|
|
2756
2756
|
// link
|
|
2757
2757
|
createLink: link.createLink,
|
|
2758
2758
|
createLinkSync: link.createLinkSync,
|
|
@@ -2937,7 +2937,7 @@ function outputJson (file, data, options, callback) {
|
|
|
2937
2937
|
|
|
2938
2938
|
var outputJson_1 = outputJson;
|
|
2939
2939
|
|
|
2940
|
-
const fs$
|
|
2940
|
+
const fs$9 = gracefulFs;
|
|
2941
2941
|
const path$7 = path__default["default"];
|
|
2942
2942
|
const mkdir$1 = mkdirs_1;
|
|
2943
2943
|
const jsonFile$1 = jsonfile;
|
|
@@ -2945,7 +2945,7 @@ const jsonFile$1 = jsonfile;
|
|
|
2945
2945
|
function outputJsonSync (file, data, options) {
|
|
2946
2946
|
const dir = path$7.dirname(file);
|
|
2947
2947
|
|
|
2948
|
-
if (!fs$
|
|
2948
|
+
if (!fs$9.existsSync(dir)) {
|
|
2949
2949
|
mkdir$1.mkdirsSync(dir);
|
|
2950
2950
|
}
|
|
2951
2951
|
|
|
@@ -2969,7 +2969,7 @@ jsonFile.readJSONSync = jsonFile.readJsonSync;
|
|
|
2969
2969
|
|
|
2970
2970
|
var json = jsonFile;
|
|
2971
2971
|
|
|
2972
|
-
const fs$
|
|
2972
|
+
const fs$8 = gracefulFs;
|
|
2973
2973
|
const path$6 = path__default["default"];
|
|
2974
2974
|
const copySync = copySync$1.copySync;
|
|
2975
2975
|
const removeSync = remove$2.removeSync;
|
|
@@ -2983,7 +2983,7 @@ function moveSync (src, dest, options) {
|
|
|
2983
2983
|
src = path$6.resolve(src);
|
|
2984
2984
|
dest = path$6.resolve(dest);
|
|
2985
2985
|
|
|
2986
|
-
if (src === dest) return fs$
|
|
2986
|
+
if (src === dest) return fs$8.accessSync(src)
|
|
2987
2987
|
|
|
2988
2988
|
if (isSrcSubdir$1(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)
|
|
2989
2989
|
|
|
@@ -2993,7 +2993,7 @@ function moveSync (src, dest, options) {
|
|
|
2993
2993
|
function tryRenameSync () {
|
|
2994
2994
|
if (overwrite) {
|
|
2995
2995
|
try {
|
|
2996
|
-
return fs$
|
|
2996
|
+
return fs$8.renameSync(src, dest)
|
|
2997
2997
|
} catch (err) {
|
|
2998
2998
|
if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {
|
|
2999
2999
|
removeSync(dest);
|
|
@@ -3006,8 +3006,8 @@ function moveSync (src, dest, options) {
|
|
|
3006
3006
|
}
|
|
3007
3007
|
} else {
|
|
3008
3008
|
try {
|
|
3009
|
-
fs$
|
|
3010
|
-
return fs$
|
|
3009
|
+
fs$8.linkSync(src, dest);
|
|
3010
|
+
return fs$8.unlinkSync(src)
|
|
3011
3011
|
} catch (err) {
|
|
3012
3012
|
if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {
|
|
3013
3013
|
return moveSyncAcrossDevice(src, dest, overwrite)
|
|
@@ -3019,7 +3019,7 @@ function moveSync (src, dest, options) {
|
|
|
3019
3019
|
}
|
|
3020
3020
|
|
|
3021
3021
|
function moveSyncAcrossDevice (src, dest, overwrite) {
|
|
3022
|
-
const stat = fs$
|
|
3022
|
+
const stat = fs$8.statSync(src);
|
|
3023
3023
|
|
|
3024
3024
|
if (stat.isDirectory()) {
|
|
3025
3025
|
return moveDirSyncAcrossDevice(src, dest, overwrite)
|
|
@@ -3034,20 +3034,20 @@ function moveFileSyncAcrossDevice (src, dest, overwrite) {
|
|
|
3034
3034
|
|
|
3035
3035
|
const flags = overwrite ? 'w' : 'wx';
|
|
3036
3036
|
|
|
3037
|
-
const fdr = fs$
|
|
3038
|
-
const stat = fs$
|
|
3039
|
-
const fdw = fs$
|
|
3037
|
+
const fdr = fs$8.openSync(src, 'r');
|
|
3038
|
+
const stat = fs$8.fstatSync(fdr);
|
|
3039
|
+
const fdw = fs$8.openSync(dest, flags, stat.mode);
|
|
3040
3040
|
let pos = 0;
|
|
3041
3041
|
|
|
3042
3042
|
while (pos < stat.size) {
|
|
3043
|
-
const bytesRead = fs$
|
|
3044
|
-
fs$
|
|
3043
|
+
const bytesRead = fs$8.readSync(fdr, _buff, 0, BUF_LENGTH, pos);
|
|
3044
|
+
fs$8.writeSync(fdw, _buff, 0, bytesRead);
|
|
3045
3045
|
pos += bytesRead;
|
|
3046
3046
|
}
|
|
3047
3047
|
|
|
3048
|
-
fs$
|
|
3049
|
-
fs$
|
|
3050
|
-
return fs$
|
|
3048
|
+
fs$8.closeSync(fdr);
|
|
3049
|
+
fs$8.closeSync(fdw);
|
|
3050
|
+
return fs$8.unlinkSync(src)
|
|
3051
3051
|
}
|
|
3052
3052
|
|
|
3053
3053
|
function moveDirSyncAcrossDevice (src, dest, overwrite) {
|
|
@@ -3072,7 +3072,7 @@ function moveDirSyncAcrossDevice (src, dest, overwrite) {
|
|
|
3072
3072
|
// extract dest base dir and check if that is the same as src basename
|
|
3073
3073
|
function isSrcSubdir$1 (src, dest) {
|
|
3074
3074
|
try {
|
|
3075
|
-
return fs$
|
|
3075
|
+
return fs$8.statSync(src).isDirectory() &&
|
|
3076
3076
|
src !== dest &&
|
|
3077
3077
|
dest.indexOf(src) > -1 &&
|
|
3078
3078
|
dest.split(path$6.dirname(src) + path$6.sep)[1].split(path$6.sep)[0] === path$6.basename(src)
|
|
@@ -3086,7 +3086,7 @@ var moveSync_1 = {
|
|
|
3086
3086
|
};
|
|
3087
3087
|
|
|
3088
3088
|
const u$1 = universalify.fromCallback;
|
|
3089
|
-
const fs$
|
|
3089
|
+
const fs$7 = gracefulFs;
|
|
3090
3090
|
const path$5 = path__default["default"];
|
|
3091
3091
|
const copy = copy$1.copy;
|
|
3092
3092
|
const remove = remove$2.remove;
|
|
@@ -3104,9 +3104,9 @@ function move (src, dest, opts, cb) {
|
|
|
3104
3104
|
src = path$5.resolve(src);
|
|
3105
3105
|
dest = path$5.resolve(dest);
|
|
3106
3106
|
|
|
3107
|
-
if (src === dest) return fs$
|
|
3107
|
+
if (src === dest) return fs$7.access(src, cb)
|
|
3108
3108
|
|
|
3109
|
-
fs$
|
|
3109
|
+
fs$7.stat(src, (err, st) => {
|
|
3110
3110
|
if (err) return cb(err)
|
|
3111
3111
|
|
|
3112
3112
|
if (st.isDirectory() && isSrcSubdir(src, dest)) {
|
|
@@ -3134,7 +3134,7 @@ function doRename (src, dest, overwrite, cb) {
|
|
|
3134
3134
|
}
|
|
3135
3135
|
|
|
3136
3136
|
function rename (src, dest, overwrite, cb) {
|
|
3137
|
-
fs$
|
|
3137
|
+
fs$7.rename(src, dest, err => {
|
|
3138
3138
|
if (!err) return cb()
|
|
3139
3139
|
if (err.code !== 'EXDEV') return cb(err)
|
|
3140
3140
|
return moveAcrossDevice(src, dest, overwrite, cb)
|
|
@@ -3167,7 +3167,7 @@ var move_1 = {
|
|
|
3167
3167
|
};
|
|
3168
3168
|
|
|
3169
3169
|
const u = universalify.fromCallback;
|
|
3170
|
-
const fs$
|
|
3170
|
+
const fs$6 = gracefulFs;
|
|
3171
3171
|
const path$4 = path__default["default"];
|
|
3172
3172
|
const mkdir = mkdirs_1;
|
|
3173
3173
|
const pathExists = pathExists_1.pathExists;
|
|
@@ -3181,23 +3181,23 @@ function outputFile (file, data, encoding, callback) {
|
|
|
3181
3181
|
const dir = path$4.dirname(file);
|
|
3182
3182
|
pathExists(dir, (err, itDoes) => {
|
|
3183
3183
|
if (err) return callback(err)
|
|
3184
|
-
if (itDoes) return fs$
|
|
3184
|
+
if (itDoes) return fs$6.writeFile(file, data, encoding, callback)
|
|
3185
3185
|
|
|
3186
3186
|
mkdir.mkdirs(dir, err => {
|
|
3187
3187
|
if (err) return callback(err)
|
|
3188
3188
|
|
|
3189
|
-
fs$
|
|
3189
|
+
fs$6.writeFile(file, data, encoding, callback);
|
|
3190
3190
|
});
|
|
3191
3191
|
});
|
|
3192
3192
|
}
|
|
3193
3193
|
|
|
3194
3194
|
function outputFileSync (file, ...args) {
|
|
3195
3195
|
const dir = path$4.dirname(file);
|
|
3196
|
-
if (fs$
|
|
3197
|
-
return fs$
|
|
3196
|
+
if (fs$6.existsSync(dir)) {
|
|
3197
|
+
return fs$6.writeFileSync(file, ...args)
|
|
3198
3198
|
}
|
|
3199
3199
|
mkdir.mkdirsSync(dir);
|
|
3200
|
-
fs$
|
|
3200
|
+
fs$6.writeFileSync(file, ...args);
|
|
3201
3201
|
}
|
|
3202
3202
|
|
|
3203
3203
|
var output = {
|
|
@@ -3210,7 +3210,7 @@ var output = {
|
|
|
3210
3210
|
module.exports = Object.assign(
|
|
3211
3211
|
{},
|
|
3212
3212
|
// Export promiseified graceful-fs:
|
|
3213
|
-
fs$
|
|
3213
|
+
fs$o,
|
|
3214
3214
|
// Export extra methods:
|
|
3215
3215
|
copySync$1,
|
|
3216
3216
|
copy$1,
|
|
@@ -3235,11 +3235,11 @@ var output = {
|
|
|
3235
3235
|
}
|
|
3236
3236
|
} (lib$3));
|
|
3237
3237
|
|
|
3238
|
-
var fs$
|
|
3238
|
+
var fs$5 = libExports$1;
|
|
3239
3239
|
|
|
3240
3240
|
class File {
|
|
3241
3241
|
constructor(path, hash) {
|
|
3242
|
-
this._fd = fs$
|
|
3242
|
+
this._fd = fs$5.openSync(path, "w");
|
|
3243
3243
|
this.path = path;
|
|
3244
3244
|
this.hash = hash;
|
|
3245
3245
|
this.system = undefined;
|
|
@@ -3268,14 +3268,14 @@ class File {
|
|
|
3268
3268
|
if (!this._fd) {
|
|
3269
3269
|
throw new Error(`No fd for ${this.path}`);
|
|
3270
3270
|
}
|
|
3271
|
-
fs$
|
|
3272
|
-
fs$
|
|
3271
|
+
fs$5.closeSync(this._fd);
|
|
3272
|
+
fs$5.unlinkSync(this.path);
|
|
3273
3273
|
}
|
|
3274
3274
|
close() {
|
|
3275
3275
|
if (this._fd === undefined) {
|
|
3276
3276
|
throw new Error(`No fd for ${this.path}`);
|
|
3277
3277
|
}
|
|
3278
|
-
fs$
|
|
3278
|
+
fs$5.closeSync(this._fd);
|
|
3279
3279
|
this._fd = undefined;
|
|
3280
3280
|
}
|
|
3281
3281
|
_write() {
|
|
@@ -3283,7 +3283,7 @@ class File {
|
|
|
3283
3283
|
const pending = this._pending.shift();
|
|
3284
3284
|
if (pending) {
|
|
3285
3285
|
assert__default["default"](this._fd !== undefined);
|
|
3286
|
-
fs$
|
|
3286
|
+
fs$5.write(this._fd, pending.data)
|
|
3287
3287
|
.then(() => {
|
|
3288
3288
|
pending.resolve();
|
|
3289
3289
|
assert__default["default"](this._pending);
|
|
@@ -3298,7 +3298,7 @@ class File {
|
|
|
3298
3298
|
})
|
|
3299
3299
|
.catch((e) => {
|
|
3300
3300
|
assert__default["default"](this._fd !== undefined);
|
|
3301
|
-
fs$
|
|
3301
|
+
fs$5.closeSync(this._fd);
|
|
3302
3302
|
this._fd = undefined;
|
|
3303
3303
|
pending.reject(e);
|
|
3304
3304
|
this._clearPending(e);
|
|
@@ -3354,139 +3354,262 @@ class Links {
|
|
|
3354
3354
|
}
|
|
3355
3355
|
}
|
|
3356
3356
|
|
|
3357
|
-
|
|
3357
|
+
/**
|
|
3358
|
+
* random table string and table length.
|
|
3359
|
+
*/
|
|
3358
3360
|
|
|
3359
|
-
var
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
}
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
* @returns pseudo-random and valid filename.
|
|
3396
|
-
*/
|
|
3397
|
-
function randomFileName(len) {
|
|
3398
|
-
const bytes = crypto_1.default.randomBytes(len);
|
|
3399
|
-
let str = '';
|
|
3400
|
-
for (const b of bytes) {
|
|
3401
|
-
str += FILE_NAME_ALPHABET[b % FILE_NAME_ALPHABET.length];
|
|
3402
|
-
}
|
|
3403
|
-
return str;
|
|
3361
|
+
var TABLE = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
|
3362
|
+
TABLE_LEN = TABLE.length;
|
|
3363
|
+
|
|
3364
|
+
|
|
3365
|
+
/**
|
|
3366
|
+
* generate random string from template.
|
|
3367
|
+
*
|
|
3368
|
+
* replace for placeholder "X" in template.
|
|
3369
|
+
* return template if not has placeholder.
|
|
3370
|
+
*
|
|
3371
|
+
* @param {String} template template string.
|
|
3372
|
+
* @throws {TypeError} if template is not a String.
|
|
3373
|
+
* @return {String} replaced string.
|
|
3374
|
+
*/
|
|
3375
|
+
function generate(template) {
|
|
3376
|
+
var match, i, len, result;
|
|
3377
|
+
|
|
3378
|
+
if (typeof template !== 'string') {
|
|
3379
|
+
throw new TypeError('template must be a String: ' + template);
|
|
3380
|
+
}
|
|
3381
|
+
|
|
3382
|
+
match = template.match(/(X+)[^X]*$/);
|
|
3383
|
+
|
|
3384
|
+
// return template if not has placeholder
|
|
3385
|
+
if (match === null) {
|
|
3386
|
+
return template;
|
|
3387
|
+
}
|
|
3388
|
+
|
|
3389
|
+
// generate random string
|
|
3390
|
+
for (result = '', i = 0, len = match[1].length; i < len; ++i) {
|
|
3391
|
+
result += TABLE[Math.floor(Math.random() * TABLE_LEN)];
|
|
3392
|
+
}
|
|
3393
|
+
|
|
3394
|
+
// concat template and random string
|
|
3395
|
+
return template.slice(0, match.index) + result +
|
|
3396
|
+
template.slice(match.index + result.length);
|
|
3404
3397
|
}
|
|
3398
|
+
|
|
3399
|
+
|
|
3405
3400
|
/**
|
|
3406
|
-
*
|
|
3407
|
-
* The class is exported but it's recommended to use the async creation funcion `dir()`.
|
|
3401
|
+
* export.
|
|
3408
3402
|
*/
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3403
|
+
var randomstring$1 = {
|
|
3404
|
+
generate: generate
|
|
3405
|
+
};
|
|
3406
|
+
|
|
3407
|
+
var fs$4 = fs__default["default"],
|
|
3408
|
+
randomstring = randomstring$1;
|
|
3409
|
+
|
|
3410
|
+
|
|
3411
|
+
/**
|
|
3412
|
+
* create unique name file.
|
|
3413
|
+
*
|
|
3414
|
+
* @param {String} template template string for filename.
|
|
3415
|
+
* @param {Function} callback callback function.
|
|
3416
|
+
* @throws {TypeError} cannot use Promise and callback function is not found.
|
|
3417
|
+
* @return {Promise} Promise.
|
|
3418
|
+
*/
|
|
3419
|
+
function createFile(template, callback) {
|
|
3420
|
+
var filename = randomstring.generate(template);
|
|
3421
|
+
|
|
3422
|
+
// callback is not a Function
|
|
3423
|
+
if (typeof callback !== 'function') {
|
|
3424
|
+
// can use Promise
|
|
3425
|
+
if (typeof Promise === 'function') {
|
|
3426
|
+
// return Promise
|
|
3427
|
+
return new Promise(function(resolve, reject) {
|
|
3428
|
+
createFile(template, function(err, filename) {
|
|
3429
|
+
(err) ? reject(err) : resolve(filename);
|
|
3430
|
+
});
|
|
3431
|
+
});
|
|
3432
|
+
} else {
|
|
3433
|
+
// throw TypeError when cannot use Promise
|
|
3434
|
+
throw new TypeError('callback function required');
|
|
3412
3435
|
}
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3436
|
+
}
|
|
3437
|
+
|
|
3438
|
+
fs$4.open(filename, 'ax+', 384 /*=0600*/, function(err, fd) {
|
|
3439
|
+
if (err) {
|
|
3440
|
+
if (err.code === 'EEXIST') {
|
|
3441
|
+
// FIXME: infinite loop
|
|
3442
|
+
setImmediate(function(tmpl, cb) {
|
|
3443
|
+
createFile(tmpl, cb);
|
|
3444
|
+
}, template, callback);
|
|
3445
|
+
|
|
3446
|
+
return;
|
|
3447
|
+
}
|
|
3448
|
+
|
|
3449
|
+
// filename set to null if throws error
|
|
3450
|
+
filename = null;
|
|
3416
3451
|
}
|
|
3452
|
+
|
|
3453
|
+
if (fd) {
|
|
3454
|
+
fs$4.close(fd, function(err) {
|
|
3455
|
+
callback(err, filename);
|
|
3456
|
+
});
|
|
3457
|
+
} else {
|
|
3458
|
+
callback(err, filename);
|
|
3459
|
+
}
|
|
3460
|
+
});
|
|
3417
3461
|
}
|
|
3418
|
-
|
|
3462
|
+
|
|
3463
|
+
|
|
3419
3464
|
/**
|
|
3420
|
-
*
|
|
3421
|
-
* @param options Directory creation options.
|
|
3422
|
-
* @returns A promise that resolves with a temp directory instance.
|
|
3465
|
+
* sync version createFile.
|
|
3423
3466
|
*
|
|
3424
|
-
* @
|
|
3425
|
-
*
|
|
3426
|
-
*
|
|
3427
|
-
* const myDir = await dir();
|
|
3428
|
-
* // ...
|
|
3429
|
-
* await myDir.clean();
|
|
3430
|
-
* ```
|
|
3467
|
+
* @param {String} template template string for filename.
|
|
3468
|
+
* @throws {Error} error of fs.openSync or fs.closeSync.
|
|
3469
|
+
* @return {String} created filename.
|
|
3431
3470
|
*/
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3471
|
+
function createFileSync(template) {
|
|
3472
|
+
var isExist, filename, fd;
|
|
3473
|
+
|
|
3474
|
+
// FIXME: infinite loop
|
|
3475
|
+
do {
|
|
3476
|
+
isExist = false;
|
|
3477
|
+
filename = randomstring.generate(template);
|
|
3478
|
+
try {
|
|
3479
|
+
fd = fs$4.openSync(filename, 'ax+', 384 /*=0600*/);
|
|
3480
|
+
} catch (e) {
|
|
3481
|
+
if (e.code === 'EEXIST') {
|
|
3482
|
+
isExist = true;
|
|
3483
|
+
} else {
|
|
3484
|
+
throw e;
|
|
3485
|
+
}
|
|
3486
|
+
} finally {
|
|
3487
|
+
fd && fs$4.closeSync(fd);
|
|
3488
|
+
}
|
|
3489
|
+
} while (isExist);
|
|
3490
|
+
|
|
3491
|
+
return filename;
|
|
3436
3492
|
}
|
|
3437
|
-
|
|
3493
|
+
|
|
3494
|
+
|
|
3438
3495
|
/**
|
|
3439
|
-
*
|
|
3440
|
-
*
|
|
3496
|
+
* create unique name dir.
|
|
3497
|
+
*
|
|
3498
|
+
* @param {String} template template string for dirname.
|
|
3499
|
+
* @param {Function} callback callback function.
|
|
3500
|
+
* @throws {TypeError} cannot use Promise and callback function is not found.
|
|
3501
|
+
* @return {Promise} Promise.
|
|
3441
3502
|
*/
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3503
|
+
function createDir(template, callback) {
|
|
3504
|
+
var dirname = randomstring.generate(template);
|
|
3505
|
+
|
|
3506
|
+
// callback is not a Function
|
|
3507
|
+
if (typeof callback !== 'function') {
|
|
3508
|
+
// can use Promise
|
|
3509
|
+
if (typeof Promise === 'function') {
|
|
3510
|
+
// return Promise
|
|
3511
|
+
return new Promise(function(resolve, reject) {
|
|
3512
|
+
createDir(template, function(err, dirname) {
|
|
3513
|
+
(err) ? reject(err) : resolve(dirname);
|
|
3514
|
+
});
|
|
3515
|
+
});
|
|
3516
|
+
} else {
|
|
3517
|
+
// throw TypeError when cannot use Promise
|
|
3518
|
+
throw new TypeError('callback function required');
|
|
3447
3519
|
}
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3520
|
+
}
|
|
3521
|
+
|
|
3522
|
+
fs$4.mkdir(dirname, 448 /*=0700*/, function(err) {
|
|
3523
|
+
if (err) {
|
|
3524
|
+
if (err.code === 'EEXIST') {
|
|
3525
|
+
// FIXME: infinite loop
|
|
3526
|
+
setImmediate(function(tmpl, cb) {
|
|
3527
|
+
createDir(tmpl, cb);
|
|
3528
|
+
}, template, callback);
|
|
3529
|
+
|
|
3530
|
+
return;
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
// dirname set to null if throws error
|
|
3534
|
+
dirname = null;
|
|
3451
3535
|
}
|
|
3536
|
+
|
|
3537
|
+
callback(err, dirname);
|
|
3538
|
+
});
|
|
3452
3539
|
}
|
|
3453
|
-
|
|
3540
|
+
|
|
3541
|
+
|
|
3454
3542
|
/**
|
|
3455
|
-
*
|
|
3456
|
-
* @param options File creation options.
|
|
3457
|
-
* @returns A promise that resolves to a temporary file object.
|
|
3543
|
+
* sync version createDir.
|
|
3458
3544
|
*
|
|
3459
|
-
* @
|
|
3460
|
-
*
|
|
3461
|
-
* import {file} from '@josh_stern/mktemp';
|
|
3462
|
-
* const myFile = await file();
|
|
3463
|
-
* await myFile.handle.write('Hello for a little while');
|
|
3464
|
-
* await myFile.clean();
|
|
3465
|
-
* ```
|
|
3545
|
+
* @param {String} template template string for dirname.
|
|
3546
|
+
* @return {String} created dirname.
|
|
3466
3547
|
*/
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3548
|
+
function createDirSync(template) {
|
|
3549
|
+
var isExist, dirname;
|
|
3550
|
+
|
|
3551
|
+
// FIXME: infinite loop
|
|
3552
|
+
do {
|
|
3553
|
+
isExist = false;
|
|
3554
|
+
dirname = randomstring.generate(template);
|
|
3555
|
+
try {
|
|
3556
|
+
fs$4.mkdirSync(dirname, 448 /*=0700*/);
|
|
3557
|
+
} catch (e) {
|
|
3558
|
+
if (e.code === 'EEXIST') {
|
|
3559
|
+
isExist = true;
|
|
3560
|
+
} else {
|
|
3561
|
+
throw e;
|
|
3562
|
+
}
|
|
3563
|
+
}
|
|
3564
|
+
} while (isExist);
|
|
3565
|
+
|
|
3566
|
+
return dirname;
|
|
3473
3567
|
}
|
|
3474
|
-
|
|
3568
|
+
|
|
3569
|
+
|
|
3570
|
+
/**
|
|
3571
|
+
* export.
|
|
3572
|
+
*/
|
|
3573
|
+
var mktemp$1 = {
|
|
3574
|
+
createFile: createFile,
|
|
3575
|
+
createFileSync: createFileSync,
|
|
3576
|
+
createDir: createDir,
|
|
3577
|
+
createDirSync: createDirSync
|
|
3578
|
+
};
|
|
3579
|
+
|
|
3580
|
+
/*!
|
|
3581
|
+
* @license mktemp Copyright(c) 2013-2014 sasa+1
|
|
3582
|
+
* https://github.com/sasaplus1/mktemp
|
|
3583
|
+
* Released under the MIT license.
|
|
3584
|
+
*/
|
|
3585
|
+
|
|
3586
|
+
var mktemp = mktemp$1;
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
/**
|
|
3590
|
+
* export.
|
|
3591
|
+
*/
|
|
3592
|
+
var mktemp_1 = {
|
|
3593
|
+
createFile: mktemp.createFile,
|
|
3594
|
+
createFileSync: mktemp.createFileSync,
|
|
3595
|
+
createDir: mktemp.createDir,
|
|
3596
|
+
createDirSync: mktemp.createDirSync
|
|
3597
|
+
};
|
|
3475
3598
|
|
|
3476
3599
|
function untarFile(archive, file) {
|
|
3477
3600
|
return new Promise((resolve, reject) => {
|
|
3478
|
-
|
|
3479
|
-
child_process__default["default"].exec(`tar -zxf "${archive}" ${file}`, { cwd: tmpdir
|
|
3601
|
+
mktemp_1.createDir("/tmp/fisk_env_infoXXXX").then((tmpdir) => {
|
|
3602
|
+
child_process__default["default"].exec(`tar -zxf "${archive}" ${file}`, { cwd: tmpdir }, (err) => {
|
|
3480
3603
|
if (err) {
|
|
3481
3604
|
reject(err);
|
|
3482
3605
|
return;
|
|
3483
3606
|
}
|
|
3484
|
-
fs$
|
|
3607
|
+
fs$5.readFile(path__default["default"].join(tmpdir, file), "utf8", (err, data) => {
|
|
3485
3608
|
try {
|
|
3486
|
-
fs$
|
|
3609
|
+
fs$5.removeSync(tmpdir);
|
|
3487
3610
|
}
|
|
3488
3611
|
catch (e) {
|
|
3489
|
-
console.error("Got an error removing the temp dir", tmpdir
|
|
3612
|
+
console.error("Got an error removing the temp dir", tmpdir);
|
|
3490
3613
|
}
|
|
3491
3614
|
if (err) {
|
|
3492
3615
|
reject(err);
|
|
@@ -3520,12 +3643,12 @@ class Environments {
|
|
|
3520
3643
|
}
|
|
3521
3644
|
}
|
|
3522
3645
|
return new Promise((resolve, reject) => {
|
|
3523
|
-
fs$
|
|
3646
|
+
fs$5.stat(p)
|
|
3524
3647
|
.then((st) => {
|
|
3525
3648
|
if (st.isDirectory()) {
|
|
3526
3649
|
// we're good
|
|
3527
3650
|
this._path = p;
|
|
3528
|
-
fs$
|
|
3651
|
+
fs$5.readdir(p).then((files) => {
|
|
3529
3652
|
const promises = [];
|
|
3530
3653
|
files.forEach((e) => {
|
|
3531
3654
|
if (e.length === 47 && e.indexOf(".tar.gz", 40) === 40) {
|
|
@@ -3560,7 +3683,7 @@ class Environments {
|
|
|
3560
3683
|
.catch((e) => {
|
|
3561
3684
|
if ("code" in e && e.code === "ENOENT") {
|
|
3562
3685
|
// make the directory
|
|
3563
|
-
fs$
|
|
3686
|
+
fs$5.mkdirp(p, (err) => {
|
|
3564
3687
|
if (err) {
|
|
3565
3688
|
reject(`Can't make directory ${p}: ${e.message}`);
|
|
3566
3689
|
return;
|
|
@@ -3582,7 +3705,7 @@ class Environments {
|
|
|
3582
3705
|
return undefined;
|
|
3583
3706
|
}
|
|
3584
3707
|
assert__default["default"](this._path);
|
|
3585
|
-
fs$
|
|
3708
|
+
fs$5.mkdirpSync(this._path);
|
|
3586
3709
|
return new File(path__default["default"].join(this._path, `${environment.hash}.tar.gz`), environment.hash);
|
|
3587
3710
|
}
|
|
3588
3711
|
complete(file) {
|
|
@@ -3679,7 +3802,7 @@ class Environments {
|
|
|
3679
3802
|
remove(hash) {
|
|
3680
3803
|
// ### this should be promisified
|
|
3681
3804
|
try {
|
|
3682
|
-
fs$
|
|
3805
|
+
fs$5.removeSync(this._data[hash].path);
|
|
3683
3806
|
delete this._data[hash];
|
|
3684
3807
|
this.unlink(hash);
|
|
3685
3808
|
this.unlink(undefined, hash);
|
|
@@ -51858,7 +51981,7 @@ function validateCache(option) {
|
|
|
51858
51981
|
// console.log(dir);
|
|
51859
51982
|
let version;
|
|
51860
51983
|
try {
|
|
51861
|
-
version = fs$
|
|
51984
|
+
version = fs$5.readFileSync(file);
|
|
51862
51985
|
if (version.readUInt32BE() === Version) {
|
|
51863
51986
|
return;
|
|
51864
51987
|
}
|
|
@@ -51869,11 +51992,11 @@ function validateCache(option) {
|
|
|
51869
51992
|
if (version) {
|
|
51870
51993
|
console.log(`Wrong version. Destroying cache ${dir}`);
|
|
51871
51994
|
}
|
|
51872
|
-
fs$
|
|
51873
|
-
fs$
|
|
51995
|
+
fs$5.removeSync(dir);
|
|
51996
|
+
fs$5.mkdirpSync(dir);
|
|
51874
51997
|
const buf = Buffer.allocUnsafe(4);
|
|
51875
51998
|
buf.writeUInt32BE(Version);
|
|
51876
|
-
fs$
|
|
51999
|
+
fs$5.writeFileSync(file, buf);
|
|
51877
52000
|
}
|
|
51878
52001
|
function common$1(option) {
|
|
51879
52002
|
validateCache(option);
|
|
@@ -53378,7 +53501,7 @@ server.on("error", (error) => {
|
|
|
53378
53501
|
});
|
|
53379
53502
|
let schedulerNpmVersion;
|
|
53380
53503
|
try {
|
|
53381
|
-
schedulerNpmVersion = String(JSON.parse(fs$
|
|
53504
|
+
schedulerNpmVersion = String(JSON.parse(fs$5.readFileSync(path__default["default"].join(__dirname, "../package.json"), "utf8")).version);
|
|
53382
53505
|
}
|
|
53383
53506
|
catch (err) {
|
|
53384
53507
|
console.log("Couldn't parse package json", err);
|
|
@@ -53398,7 +53521,7 @@ const db = new Database(path__default["default"].join(common.cacheDir(), "db.jso
|
|
|
53398
53521
|
let objectCache;
|
|
53399
53522
|
const logFileDir = path__default["default"].join(common.cacheDir(), "logs");
|
|
53400
53523
|
try {
|
|
53401
|
-
fs$
|
|
53524
|
+
fs$5.mkdirSync(logFileDir);
|
|
53402
53525
|
}
|
|
53403
53526
|
catch (err) {
|
|
53404
53527
|
/* */
|
|
@@ -53629,14 +53752,14 @@ function purgeEnvironmentsToMaxSize() {
|
|
|
53629
53752
|
const p = Environments.instance.path;
|
|
53630
53753
|
try {
|
|
53631
53754
|
let purged = false;
|
|
53632
|
-
fs$
|
|
53755
|
+
fs$5.readdirSync(p)
|
|
53633
53756
|
.map((file) => {
|
|
53634
53757
|
// console.log("got file", file);
|
|
53635
53758
|
const abs = path__default["default"].join(p, file);
|
|
53636
53759
|
if (file.length !== 47 || file.indexOf(".tar.gz", 40) !== 40) {
|
|
53637
53760
|
try {
|
|
53638
53761
|
console.log("Removing unexpected file", abs);
|
|
53639
|
-
fs$
|
|
53762
|
+
fs$5.removeSync(abs);
|
|
53640
53763
|
}
|
|
53641
53764
|
catch (err) {
|
|
53642
53765
|
console.error("Failed to remove file", abs, err);
|
|
@@ -53645,7 +53768,7 @@ function purgeEnvironmentsToMaxSize() {
|
|
|
53645
53768
|
}
|
|
53646
53769
|
let stat;
|
|
53647
53770
|
try {
|
|
53648
|
-
stat = fs$
|
|
53771
|
+
stat = fs$5.statSync(abs);
|
|
53649
53772
|
}
|
|
53650
53773
|
catch (err) {
|
|
53651
53774
|
return undefined;
|
|
@@ -53853,7 +53976,7 @@ server.on("listen", (app) => {
|
|
|
53853
53976
|
res.sendStatus(404);
|
|
53854
53977
|
return;
|
|
53855
53978
|
}
|
|
53856
|
-
const rstream = fs$
|
|
53979
|
+
const rstream = fs$5.createReadStream(env.path);
|
|
53857
53980
|
rstream.on("error", (err) => {
|
|
53858
53981
|
console.error("Got read stream error for", env.path, err);
|
|
53859
53982
|
rstream.close();
|
|
@@ -53864,7 +53987,7 @@ server.on("listen", (app) => {
|
|
|
53864
53987
|
console.log("quitting", req.query);
|
|
53865
53988
|
if ("purge_environments" in req.query) {
|
|
53866
53989
|
try {
|
|
53867
|
-
fs$
|
|
53990
|
+
fs$5.removeSync(path__default["default"].join(common.cacheDir(), "environments"));
|
|
53868
53991
|
}
|
|
53869
53992
|
catch (err) {
|
|
53870
53993
|
/* */
|
|
@@ -53876,7 +53999,7 @@ server.on("listen", (app) => {
|
|
|
53876
53999
|
});
|
|
53877
54000
|
function updateLogFilesToMonitors() {
|
|
53878
54001
|
if (monitors.length) {
|
|
53879
|
-
fs$
|
|
54002
|
+
fs$5.readdir(logFileDir, (err, files) => {
|
|
53880
54003
|
if (files) {
|
|
53881
54004
|
files = files.reverse();
|
|
53882
54005
|
}
|
|
@@ -53887,13 +54010,13 @@ function updateLogFilesToMonitors() {
|
|
|
53887
54010
|
}
|
|
53888
54011
|
}
|
|
53889
54012
|
function clearLogFiles() {
|
|
53890
|
-
fs$
|
|
54013
|
+
fs$5.readdir(logFileDir, (err, files) => {
|
|
53891
54014
|
if (err) {
|
|
53892
54015
|
console.log("Got error removing log files", err);
|
|
53893
54016
|
return;
|
|
53894
54017
|
}
|
|
53895
54018
|
for (const file of files) {
|
|
53896
|
-
fs$
|
|
54019
|
+
fs$5.unlink(path__default["default"].join(logFileDir, file), (err) => {
|
|
53897
54020
|
if (err) {
|
|
53898
54021
|
console.log("failed to remove file", path__default["default"].join(logFileDir, file), err);
|
|
53899
54022
|
}
|
|
@@ -53903,7 +54026,7 @@ function clearLogFiles() {
|
|
|
53903
54026
|
});
|
|
53904
54027
|
}
|
|
53905
54028
|
try {
|
|
53906
|
-
fs$
|
|
54029
|
+
fs$5.watch(logFileDir, (type) => {
|
|
53907
54030
|
if (type === "rename") {
|
|
53908
54031
|
updateLogFilesToMonitors();
|
|
53909
54032
|
}
|
|
@@ -53938,7 +54061,7 @@ function formatDate(date) {
|
|
|
53938
54061
|
}
|
|
53939
54062
|
function addLogFile(log) {
|
|
53940
54063
|
try {
|
|
53941
|
-
fs$
|
|
54064
|
+
fs$5.writeFileSync(path__default["default"].join(logFileDir, `${formatDate(new Date())} ${log.source} ${log.ip}`), log.contents);
|
|
53942
54065
|
}
|
|
53943
54066
|
catch (err) {
|
|
53944
54067
|
console.error(`Failed to write log file from ${log.ip}`, err);
|
|
@@ -54347,7 +54470,7 @@ server.on("monitor", (client) => {
|
|
|
54347
54470
|
break;
|
|
54348
54471
|
case "logFiles":
|
|
54349
54472
|
// console.log("logFiles:", message);
|
|
54350
|
-
fs$
|
|
54473
|
+
fs$5.readdir(logFileDir, (err, files) => {
|
|
54351
54474
|
if (files) {
|
|
54352
54475
|
files = files.reverse();
|
|
54353
54476
|
}
|
|
@@ -54362,7 +54485,7 @@ server.on("monitor", (client) => {
|
|
|
54362
54485
|
return;
|
|
54363
54486
|
}
|
|
54364
54487
|
const f = path__default["default"].join(logFileDir, message.file);
|
|
54365
|
-
fs$
|
|
54488
|
+
fs$5.readFile(f, "utf8", (err, contents) => {
|
|
54366
54489
|
// console.log("sending file", f, contents.length);
|
|
54367
54490
|
client.send({ type: "logFile", file: f, contents: contents || "" });
|
|
54368
54491
|
});
|