-
Notifications
You must be signed in to change notification settings - Fork 0
/
listener.js
53 lines (40 loc) · 1.22 KB
/
listener.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
'use strict';
const fs = require('fs');
const path = require('path');
let watcher = null;
exports.StartListen = function (SourcePath, DestPath) {
if (!fs.existsSync(SourcePath) || !fs.existsSync(DestPath)) {
return 'path does not exists';
}
return fileWatch(SourcePath, DestPath);
};
exports.StopListen = function () {
if (null !== watcher) {
watcher.close();
watcher = null;
}
return true;
};
function fileWatch(sourcePath, destPath) {
moveCurrentFiles(sourcePath, destPath);
watcher = fs.watch(sourcePath, (eventType, fileName) => {
return handleMoveFile(sourcePath, destPath, fileName);
});
return null !== watcher;
}
function moveCurrentFiles(sourceDir, destDir) {
fs.readdir(sourceDir, (err, files) => {
return files.forEach((file) => {
return handleMoveFile(sourceDir, destDir, file);
});
});
}
function handleMoveFile(origDir, destDir, fileName) {
let filePath = path.join(origDir, fileName);
let newPath = path.join(destDir, fileName);
if (!fs.existsSync(filePath)) {
return true;
}
//do here other handling functions (like the txt request)
return fs.rename(filePath, newPath);
}