You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thumbsup/src/output-media/cleanup.js

25 lines
804 B
JavaScript

const _ = require('lodash')
const fs = require('fs')
const path = require('path')
const readdir = require('fs-readdir-recursive')
const progress = require('../utils/progress')
exports.run = function (fileCollection, outputRoot, callback) {
const mediaRoot = path.join(outputRoot, 'media')
const diskFiles = readdir(mediaRoot).map(f => path.join(mediaRoot, f))
const requiredFiles = []
fileCollection.forEach(f => {
Object.keys(f.output).forEach(out => {
var dest = path.join(outputRoot, f.output[out].path)
requiredFiles.push(dest)
})
})
const useless = _.difference(diskFiles, requiredFiles)
if (useless.length) {
const bar = progress.create('Cleaning up', useless.length)
useless.forEach(f => fs.unlinkSync(f))
bar.tick(useless.length)
}
callback()
}