132 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env node
 | |
| (function () {
 | |
|   "use strict";
 | |
| 
 | |
|   var walk = require('walk')
 | |
|     , count = 0
 | |
|     , emitter
 | |
|     , saneCount = 0
 | |
|     ;
 | |
| 
 | |
|   function sort(a,b) {
 | |
|     a= a.toLowerCase();
 | |
|     b= b.toLowerCase();
 | |
|     if (a > b) return -1;
 | |
|     if (a < b) return  1;
 | |
|     return  0;
 | |
|   }
 | |
| 
 | |
|   process.argv.forEach(function(startpath, index) {
 | |
|     if (index > 1) {
 | |
|       emitter = walk.walk(startpath);
 | |
| 
 | |
|   // Non-`stat`ed Nodes
 | |
|       emitter.on('name', function (path, file, stat) {
 | |
|         saneCount += 1;
 | |
|         //console.log( ["[", count, "] ", path, '/', file].join('') )
 | |
|         //console.log( [path, '/', file].join('') )
 | |
|       });
 | |
|       emitter.on('names', function (path, files, stats) {
 | |
|         files.sort(sort);
 | |
|         //console.log('sort: ' + files.join(' ; '));
 | |
|       });
 | |
| 
 | |
| 
 | |
| 
 | |
|   // Single `stat`ed Nodes
 | |
|       emitter.on('error', function (path, err, next) {
 | |
|         next()
 | |
|         // ignore
 | |
|       });
 | |
|       emitter.on('directoryError', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('nodeError', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       /*
 | |
|       emitter.on('node', function (path, stat, next) {
 | |
|         count += 1;
 | |
|         console.log( [path, '/', stat.name].join('') )
 | |
|         //console.log( ["[", count, "] ", path, '/', stat.name].join('') )
 | |
|         next();
 | |
|       });
 | |
|       */
 | |
|       emitter.on('file', function (path, stat, next) {
 | |
|         count += 1;
 | |
|         console.log( [path, '/', stat.name].join('') )
 | |
|         //console.log( ["[", count, "] ", path, '/', stat.name].join('') )
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('directory', function (path, stat, next) {
 | |
|         count += 1;
 | |
|         console.log( [path, '/', stat.name].join('') )
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('symbolicLink', function (path, stat, next) {
 | |
|         count += 1;
 | |
|         console.log( [path, '/', stat.name].join('') )
 | |
|         next();
 | |
|       });
 | |
|       /*
 | |
|       emitter.on('blockDevice', function (path, stat, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('characterDevice', function (path, stat, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('FIFO', function (path, stat, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('socket', function (path, stat, next) {
 | |
|         next();
 | |
|       });
 | |
|       */
 | |
| 
 | |
| 
 | |
| 
 | |
|     // Grouped `stat`ed Nodes
 | |
|       emitter.on('errors', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       /*
 | |
|       emitter.on('nodes', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       */
 | |
|       emitter.on('files', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('directories', function (path, stats, next) {
 | |
|         //delete stats[1];
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('symbolicLinks', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       /*
 | |
|       emitter.on('blockDevices', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('characterDevices', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('FIFOs', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       emitter.on('sockets', function (path, stats, next) {
 | |
|         next();
 | |
|       });
 | |
|       */
 | |
| 
 | |
| 
 | |
| 
 | |
|     // The end of all things
 | |
|       emitter.on('end', function () {
 | |
|         console.log("The eagle has landed. [" + count + " == " + saneCount + "]");
 | |
|       });
 | |
|     }
 | |
|   });
 | |
| 
 | |
| }());
 |