You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							991 B
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							991 B
						
					
					
				#! /usr/bin/env node | 
						|
 | 
						|
var createHash = require('./browserify') | 
						|
var argv = process.argv.slice(2) | 
						|
 | 
						|
function pipe (algorithm, s) { | 
						|
  var start = Date.now() | 
						|
  var hash = createHash(algorithm || 'sha1') | 
						|
 | 
						|
  s.on('data', function (data) { | 
						|
    hash.update(data) | 
						|
  }) | 
						|
 | 
						|
  s.on('end', function () { | 
						|
    if (process.env.DEBUG) { | 
						|
      return console.log(hash.digest('hex'), Date.now() - start) | 
						|
    } | 
						|
 | 
						|
    console.log(hash.digest('hex')) | 
						|
  }) | 
						|
} | 
						|
 | 
						|
function usage () { | 
						|
  console.error('sha.js [algorithm=sha1] [filename] # hash filename with algorithm') | 
						|
  console.error('input | sha.js [algorithm=sha1]    # hash stdin with algorithm') | 
						|
  console.error('sha.js --help                      # display this message') | 
						|
} | 
						|
 | 
						|
if (!process.stdin.isTTY) { | 
						|
  pipe(argv[0], process.stdin) | 
						|
} else if (argv.length) { | 
						|
  if (/--help|-h/.test(argv[0])) { | 
						|
    usage() | 
						|
  } else { | 
						|
    var filename = argv.pop() | 
						|
    var algorithm = argv.pop() | 
						|
    pipe(algorithm, require('fs').createReadStream(filename)) | 
						|
  } | 
						|
} else { | 
						|
  usage() | 
						|
}
 | 
						|
 |