Use find -type f to get a list of output files
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
async = require "async"
|
||||
fs = require "fs"
|
||||
Path = require "path"
|
||||
wrench = require "wrench"
|
||||
spawn = require("child_process").spawn
|
||||
|
||||
module.exports = OutputFileFinder =
|
||||
findOutputFiles: (resources, directory, callback = (error, outputFiles) ->) ->
|
||||
@@ -16,44 +16,37 @@ module.exports = OutputFileFinder =
|
||||
for file in allFiles
|
||||
do (file) ->
|
||||
jobs.push (callback) ->
|
||||
if incomingResources[file.path]
|
||||
if incomingResources[file]
|
||||
return callback()
|
||||
else
|
||||
OutputFileFinder._isDirectory Path.join(directory, file.path), (error, directory) ->
|
||||
return callback(error) if error?
|
||||
if !directory
|
||||
outputFiles.push file
|
||||
callback()
|
||||
outputFiles.push {
|
||||
path: file
|
||||
type: file.match(/\.([^\.]+)$/)?[1]
|
||||
}
|
||||
callback()
|
||||
|
||||
async.series jobs, (error) ->
|
||||
return callback(error) if error?
|
||||
callback null, outputFiles
|
||||
|
||||
_isDirectory: (path, callback = (error, directory) ->) ->
|
||||
fs.stat path, (error, stat) ->
|
||||
callback error, stat?.isDirectory()
|
||||
|
||||
_getAllFiles: (directory, _callback = (error, outputFiles) ->) ->
|
||||
callback = (error, outputFiles) ->
|
||||
_callback(error, outputFiles)
|
||||
_getAllFiles: (directory, _callback = (error, fileList) ->) ->
|
||||
callback = (error, fileList) ->
|
||||
_callback(error, fileList)
|
||||
_callback = () ->
|
||||
|
||||
outputFiles = []
|
||||
|
||||
wrench.readdirRecursive directory, (error, files) =>
|
||||
if error?
|
||||
if error.code == "ENOENT"
|
||||
# Directory doesn't exist, which is not a problem
|
||||
return callback(null, [])
|
||||
else
|
||||
return callback(error)
|
||||
|
||||
# readdirRecursive returns multiple times and finishes with a null response
|
||||
if !files?
|
||||
return callback(null, outputFiles)
|
||||
|
||||
for file in files
|
||||
outputFiles.push
|
||||
path: file
|
||||
type: file.match(/\.([^\.]+)$/)?[1]
|
||||
proc = spawn("find", [directory, "-type", "f"])
|
||||
stdout = ""
|
||||
proc.stdout.on "data", (chunk) ->
|
||||
stdout += chunk.toString()
|
||||
proc.on "error", callback
|
||||
proc.on "close", (code) ->
|
||||
if code != 0
|
||||
error = new Error("find returned non-zero exit code: #{code}")
|
||||
return callback(error)
|
||||
|
||||
fileList = stdout.trim().split("\n")
|
||||
fileList = fileList.map (file) ->
|
||||
# Strip leading directory
|
||||
path = Path.relative(directory, file)
|
||||
return callback null, fileList
|
||||
|
||||
|
||||
Reference in New Issue
Block a user