node/deps/npm/lib/utils/cleanup-log-files.js
Myles Borins 2e54524955
deps: update npm to 7.0.0-rc.3
PR-URL: https://github.com/nodejs/node/pull/35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2020-10-07 09:59:49 -04:00

36 lines
995 B
JavaScript

// 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()
}
})
}
})
})
}