mirror of https://github.com/thumbsup/thumbsup
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.
25 lines
804 B
JavaScript
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()
|
|
}
|