UNPKG

anyfetch-file-watcher

Version:

Watch for file changes, and send them to anyFetch.

64 lines (56 loc) 1.63 kB
"use strict"; var watch = require('watch'); var os = require('os'); var queues = require('./helpers/upload'); var pushToUploadQueue = queues.pushToUploadQueue; var pushToDeleteQueue = queues.pushToDeleteQueue; var cursor = require('./helpers/cursor'); var watcher = function(accessToken) { console.log("WATCHING ", GLOBAL.WATCHED_DIR); watch.createMonitor(GLOBAL.WATCHED_DIR, {skipUnreadableDir: true}, function(monitor) { monitor.on("created", function(file, stat) { var task = { filePath: file, creationDate: stat.ctime, modificationDate: stat.mtime, accessToken: accessToken, baseIdentifier: os.hostname() }; pushToUploadQueue(task); cursor.addOrUpdateFiles({file: stat.mtime}, function(err){ if(err) { console.warn(err); } }); }); monitor.on("changed", function(file, current) { var task = { filePath: file, creationDate: current.ctime, modificationDate: current.mtime, accessToken: accessToken, baseIdentifier: os.hostname() }; pushToUploadQueue(task); cursor.addOrUpdateFiles({file: current.mtime}, function(err){ if(err) { console.warn(err); } }); }); monitor.on("removed", function(file) { var task = { filePath: file, accessToken: accessToken, baseIdentifier: os.hostname() }; pushToDeleteQueue(task); cursor.removeFiles(file, function(err){ if(err) { console.warn(err); } }); }); }); }; module.exports = watcher;