1234567891011121314151617181920212223242526272829303132 |
- // module to clean out the old log files in cache/_logs
- // this is a best-effort attempt. if a rm fails, we just
- // log a message about it and move on. We do return a
- // Promise that succeeds when we've tried to delete everything,
- // just for the benefit of testing this function properly.
- const { resolve } = require('path')
- const rimraf = require('rimraf')
- const glob = require('glob')
- module.exports = (cache, max, warn) => {
- /* eslint-disable promise/param-names */
- return new Promise(done => {
- glob(resolve(cache, '_logs', '*-debug.log'), (er, files) => {
- if (er)
- return done()
- let pending = files.length - max
- if (pending <= 0)
- return done()
- for (let i = 0; i < files.length - max; i++) {
- rimraf(files[i], (er) => {
- if (er)
- warn('log', 'failed to remove log file', files[i])
- if (--pending === 0)
- done()
- })
- }
- })
- })
- }
|