| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /* eslint-disable
- handle-callback-err,
- no-return-assign,
- no-unused-vars,
- no-useless-escape,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS103: Rewrite code to no longer use __guard__
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let OutputFileFinder
- const async = require('async')
- const fs = require('fs')
- const Path = require('path')
- const { spawn } = require('child_process')
- const logger = require('logger-sharelatex')
- module.exports = OutputFileFinder = {
- findOutputFiles(resources, directory, callback) {
- const incomingResources = new Set(
- resources.map((resource) => resource.path)
- )
- return OutputFileFinder._getAllFiles(directory, function (error, allFiles) {
- if (allFiles == null) {
- allFiles = []
- }
- if (error) {
- logger.err({ err: error }, 'error finding all output files')
- return callback(error)
- }
- const outputFiles = []
- for (const file of Array.from(allFiles)) {
- if (!incomingResources.has(file)) {
- const type = Path.extname(file)
- outputFiles.push({
- path: file,
- type: Path.extname(file) || undefined,
- })
- }
- }
- callback(null, outputFiles, allFiles)
- })
- },
- _getAllFiles(directory, _callback) {
- // don't include clsi-specific files/directories in the output list
- const EXCLUDE_DIRS = [
- '-name',
- '.cache',
- '-o',
- '-name',
- '.archive',
- '-o',
- '-name',
- '.project-*',
- ]
- const args = [
- directory,
- '(',
- ...Array.from(EXCLUDE_DIRS),
- ')',
- '-prune',
- '-o',
- '-type',
- 'f',
- '-print',
- ]
- logger.log({ args }, 'running find command')
- const proc = spawn('find', args)
- let stdout = ''
- proc.stdout.setEncoding('utf8').on('data', (chunk) => (stdout += chunk))
- proc.on('error', callback)
- return proc.on('close', function (code) {
- if (code !== 0) {
- logger.warn(
- { directory, code },
- "find returned error, directory likely doesn't exist"
- )
- return callback(null, [])
- }
- let fileList = stdout.trim().split('\n')
- fileList = fileList.map(function (file) {
- // Strip leading directory
- let path
- return (path = Path.relative(directory, file))
- })
- callback(null, fileList)
- })
- },
- }
- function __guard__(value, transform) {
- return typeof value !== 'undefined' && value !== null
- ? transform(value)
- : undefined
- }
|