use database instead of a hidden file to store last scan timestamp
This commit is contained in:
parent
6917e8b420
commit
25a21bea61
1 changed files with 0 additions and 34 deletions
|
@ -1,6 +1,5 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const chokidar = require('chokidar');
|
const chokidar = require('chokidar');
|
||||||
const { open, writeFile } = require('fs/promises');
|
|
||||||
|
|
||||||
const Environment = require('../models/Environment.js');
|
const Environment = require('../models/Environment.js');
|
||||||
|
|
||||||
|
@ -31,7 +30,6 @@ class Watcher {
|
||||||
env = new Environment(constants.ENVIRONMENT_LASTSCAN, new Date().getTime().toString());
|
env = new Environment(constants.ENVIRONMENT_LASTSCAN, new Date().getTime().toString());
|
||||||
env.save();
|
env.save();
|
||||||
}
|
}
|
||||||
ignoreInitial = (new Date().getTime() - await this.#checkHiddenFile(directory)) < (config?.library?.initialscan?.maxage || 86400000);
|
|
||||||
}
|
}
|
||||||
logger.debug('watching directory \'' + directory + '\'...');
|
logger.debug('watching directory \'' + directory + '\'...');
|
||||||
this.#handleEvents(chokidar.watch(directory, {
|
this.#handleEvents(chokidar.watch(directory, {
|
||||||
|
@ -54,38 +52,6 @@ class Watcher {
|
||||||
queue.add(constants.FS_EVENT_CHANGE, file, stats);
|
queue.add(constants.FS_EVENT_CHANGE, file, stats);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async #checkHiddenFile(directory) {
|
|
||||||
if (directory === undefined) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const hiddenFile = path.join(directory, '.kannon');
|
|
||||||
let filehandle;
|
|
||||||
try {
|
|
||||||
filehandle = await open(hiddenFile);
|
|
||||||
return (await filehandle.readFile()).toString();
|
|
||||||
} catch (error) {
|
|
||||||
if (error.code === 'ENOENT') {
|
|
||||||
return await this.#createHiddenFile(hiddenFile);
|
|
||||||
}
|
|
||||||
logger.error('encountered an error checking the hidden file \'' + hiddenFile + '\' > ' + error);
|
|
||||||
} finally {
|
|
||||||
filehandle?.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async #createHiddenFile(file) {
|
|
||||||
if (file === undefined) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const timestamp = new Date().getTime().toString();
|
|
||||||
try {
|
|
||||||
await writeFile(file, timestamp);
|
|
||||||
return timestamp;
|
|
||||||
} catch (error) {
|
|
||||||
logger.error('encountered an error writing the hidden file \'' + file + '\' > ' + error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Watcher;
|
module.exports = Watcher;
|
Loading…
Reference in a new issue