Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

Commit

Permalink
fix global
Browse files Browse the repository at this point in the history
  • Loading branch information
bradleyg committed May 25, 2012
1 parent 2aca6b6 commit facd70b
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions index.js
Expand Up @@ -3,37 +3,39 @@ var path = require('path')
var events = require('events')

var unravel = module.exports = new events.EventEmitter
var count = 0

unravel.dir = function(dir) {
unravel.dir = function(base) {
var count = 0
var self = this
fs.stat(dir, function(err, stat){
if(err || ! stat.isDirectory()) return self.emit('error', err || 'not a directory')
unravel.read(dir)
})
}

unravel.read = function(dir) {
var self = this
var files = []
count++

fs.readdir(dir, function(err, files) {
if (err) self.emit('error', err)
count--
fs.stat(base, function(err, stat){
if(err || ! stat.isDirectory()) return self.emit('error', err || 'not a directory')

files.forEach(function(file) {
file = path.join(dir, file)
var read = function(dir) {
var files = []
count++

fs.stat(file, function(err, stat) {

fs.readdir(dir, function(err, files) {
if (err) self.emit('error', err)
count--
if (err) return self.emit('error', err)
if (stat.isDirectory()) return unravel.read(file)

self.emit('file', file)
if (count == 0) self.emit('end')

files.forEach(function(file) {
file = path.join(dir, file)
count++

fs.stat(file, function(err, stat) {
count--
if (err) return self.emit('error', err)
if (stat.isDirectory()) return read(file)

self.emit('file', file)
if (count == 0) self.emit('end')
})
})
})
})
}

read(base)
})
}
}

0 comments on commit facd70b

Please sign in to comment.