diff options
| author | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
|---|---|---|
| committer | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
| commit | 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch) | |
| tree | 360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/walker | |
| parent | b500a50f1b97d93c98b36ed9a980f8188d648147 (diff) | |
| download | LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip  | |
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/walker')
| -rw-r--r-- | node_modules/walker/.travis.yml | 3 | ||||
| -rw-r--r-- | node_modules/walker/LICENSE | 13 | ||||
| -rw-r--r-- | node_modules/walker/lib/walker.js | 111 | ||||
| -rw-r--r-- | node_modules/walker/package.json | 27 | ||||
| -rw-r--r-- | node_modules/walker/readme.md | 52 | 
5 files changed, 206 insertions, 0 deletions
diff --git a/node_modules/walker/.travis.yml b/node_modules/walker/.travis.yml new file mode 100644 index 0000000..2d26206 --- /dev/null +++ b/node_modules/walker/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: +  - 0.6 diff --git a/node_modules/walker/LICENSE b/node_modules/walker/LICENSE new file mode 100644 index 0000000..ebfef1f --- /dev/null +++ b/node_modules/walker/LICENSE @@ -0,0 +1,13 @@ +Copyright 2013 Naitik Shah + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +  http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/node_modules/walker/lib/walker.js b/node_modules/walker/lib/walker.js new file mode 100644 index 0000000..1907842 --- /dev/null +++ b/node_modules/walker/lib/walker.js @@ -0,0 +1,111 @@ +module.exports = Walker + +var path = require('path') +  , fs = require('fs') +  , util = require('util') +  , EventEmitter = require('events').EventEmitter +  , makeError = require('makeerror') + +/** + * To walk a directory. It's complicated (but it's async, so it must be fast). + * + * @param root {String} the directory to start with + */ +function Walker(root) { +  if (!(this instanceof Walker)) return new Walker(root) +  EventEmitter.call(this) +  this._pending = 0 +  this._filterDir = function() { return true } +  this.go(root) +} +util.inherits(Walker, EventEmitter) + +/** + * Errors of this type are thrown when the type of a file could not be + * determined. + */ +var UnknownFileTypeError = Walker.UnknownFileTypeError = makeError( +  'UnknownFileTypeError', +  'The type of this file could not be determined.' +) + +/** + * Setup a function to filter out directory entries. + * + * @param fn {Function} a function that will be given a directory name, which + * if returns true will include the directory and it's children + */ +Walker.prototype.filterDir = function(fn) { +  this._filterDir = fn +  return this +} + +/** + * Process a file or directory. + */ +Walker.prototype.go = function(entry) { +  var that = this +  this._pending++ + +  fs.lstat(entry, function(er, stat) { +    if (er) { +      that.emit('error', er, entry, stat) +      that.doneOne() +      return +    } + +    if (stat.isDirectory()) { +      if (!that._filterDir(entry, stat)) { +        that.doneOne() +      } else { +        fs.readdir(entry, function(er, files) { +          if (er) { +            that.emit('error', er, entry, stat) +            that.doneOne() +            return +          } + +          that.emit('entry', entry, stat) +          that.emit('dir', entry, stat) +          files.forEach(function(part) { +            that.go(path.join(entry, part)) +          }) +          that.doneOne() +        }) +      } +    } else if (stat.isSymbolicLink()) { +      that.emit('entry', entry, stat) +      that.emit('symlink', entry, stat) +      that.doneOne() +    } else if (stat.isBlockDevice()) { +      that.emit('entry', entry, stat) +      that.emit('blockDevice', entry, stat) +      that.doneOne() +    } else if (stat.isCharacterDevice()) { +      that.emit('entry', entry, stat) +      that.emit('characterDevice', entry, stat) +      that.doneOne() +    } else if (stat.isFIFO()) { +      that.emit('entry', entry, stat) +      that.emit('fifo', entry, stat) +      that.doneOne() +    } else if (stat.isSocket()) { +      that.emit('entry', entry, stat) +      that.emit('socket', entry, stat) +      that.doneOne() +    } else if (stat.isFile()) { +      that.emit('entry', entry, stat) +      that.emit('file', entry, stat) +      that.doneOne() +    } else { +      that.emit('error', UnknownFileTypeError(), entry, stat) +      that.doneOne() +    } +  }) +  return this +} + +Walker.prototype.doneOne = function() { +  if (--this._pending === 0) this.emit('end') +  return this +} diff --git a/node_modules/walker/package.json b/node_modules/walker/package.json new file mode 100644 index 0000000..4156086 --- /dev/null +++ b/node_modules/walker/package.json @@ -0,0 +1,27 @@ +{ +  "name": "walker", +  "description": "A simple directory tree walker.", +  "version": "1.0.8", +  "homepage": "https://github.com/daaku/nodejs-walker", +  "author": "Naitik Shah <n@daaku.org>", +  "keywords": [ +    "utils", +    "fs", +    "filesystem" +  ], +  "main": "lib/walker", +  "repository": { +    "type": "git", +    "url": "https://github.com/daaku/nodejs-walker" +  }, +  "scripts": { +    "test": "NODE_PATH=./lib mocha --ui exports" +  }, +  "dependencies": { +    "makeerror": "1.0.12" +  }, +  "devDependencies": { +    "mocha": "9.1.3" +  }, +  "license": "Apache-2.0" +} diff --git a/node_modules/walker/readme.md b/node_modules/walker/readme.md new file mode 100644 index 0000000..604a7e2 --- /dev/null +++ b/node_modules/walker/readme.md @@ -0,0 +1,52 @@ +walker [](http://travis-ci.org/daaku/nodejs-walker) +====== + +A nodejs directory walker. Broadcasts events for various file types as well as +a generic "entry" event for all types and provides the ability to prune +directory trees. This shows the entire API; everything is optional: + +```javascript +Walker('/etc/') +  .filterDir(function(dir, stat) { +    if (dir === '/etc/pam.d') { +      console.warn('Skipping /etc/pam.d and children') +      return false +    } +    return true +  }) +  .on('entry', function(entry, stat) { +    console.log('Got entry: ' + entry) +  }) +  .on('dir', function(dir, stat) { +    console.log('Got directory: ' + dir) +  }) +  .on('file', function(file, stat) { +    console.log('Got file: ' + file) +  }) +  .on('symlink', function(symlink, stat) { +    console.log('Got symlink: ' + symlink) +  }) +  .on('blockDevice', function(blockDevice, stat) { +    console.log('Got blockDevice: ' + blockDevice) +  }) +  .on('fifo', function(fifo, stat) { +    console.log('Got fifo: ' + fifo) +  }) +  .on('socket', function(socket, stat) { +    console.log('Got socket: ' + socket) +  }) +  .on('characterDevice', function(characterDevice, stat) { +    console.log('Got characterDevice: ' + characterDevice) +  }) +  .on('error', function(er, entry, stat) { +    console.log('Got error ' + er + ' on entry ' + entry) +  }) +  .on('end', function() { +    console.log('All files traversed.') +  }) +``` + +You specify a root directory to walk and optionally specify a function to prune +sub-directory trees via the `filterDir` function. The Walker exposes a number +of events, broadcasting various file type events a generic error event and +finally the event to signal the end of the process.  | 
