UNPKG

databridge

Version:

Data bridging software to modularize, automate and schedule the transfer of data between different sources and destinations.

57 lines (52 loc) 1.83 kB
/** * Cleanup logs and output folder - prompt user for number of days */ module.exports = function(opt, moduleCallback) { var fs = require('fs'), async = require('async'), rimraf = require('rimraf'), dirCount = 0, opCount = 0; async.waterfall([ function(cb) { //delete logs younger than specified days fs.readdir(opt.dirs.logs, function(err, files) { if (err) return cb(err); for (var i = 0; i < files.length; i++) { if (files[i] == '.gitignore') continue; var dt = new Date(), dtdir = dt.getFullYear() + ('0' + (Number(dt.getMonth()) + 1).toString()).slice(-2) + ('0' + dt.getDate()).slice(-2); if ((Number(dtdir) - Number(opt.days)) >= Number(files[i].replace(/-/g, ''))) { dirCount++; try { rimraf.sync(opt.dirs.logs + files[i]); } catch (e) { cb(e); } } } cb(null); }); }, function(cb) { //delete any extra output files fs.readdir(opt.dirs.output, function(err, files) { if (err) return cb(err); for (var i = 0; i < files.length; i++) { if (files[i] == '.gitignore') continue; opCount++; try { rimraf.sync(opt.dirs.output + files[i]); } catch (e) { cb(e); } } cb(null); }); } ], function(err) { if (err) return moduleCallback(err); if (typeof(moduleCallback) === 'function') moduleCallback(null, 'Deleted ' + dirCount + ' log directories that were older than ' + opt.days + ' days and ' + opCount + ' leftover output files.'); }); };