|
1 | 1 | #! /usr/bin/env node
|
2 | 2 |
|
3 | 3 | var createHash = require('./browserify')
|
4 |
| - |
5 | 4 | var argv = process.argv.slice(2)
|
6 | 5 |
|
7 |
| -if(/--help|-h/.test(argv[0])) return usage() |
8 |
| - |
9 |
| -function stream (alg, s) { |
| 6 | +function pipe (algorithm, s) { |
10 | 7 | var start = Date.now()
|
11 |
| - var hash = createHash(alg || 'sha1') |
12 |
| - s |
13 |
| - .on('data', function (data) { |
| 8 | + var hash = createHash(algorithm || 'sha1') |
| 9 | + |
| 10 | + s.on('data', function (data) { |
14 | 11 | hash.update(data)
|
15 | 12 | })
|
16 |
| - .on('end', function (data) { |
17 |
| - if(process.env.DEBUG) |
| 13 | + |
| 14 | + s.on('end', function () { |
| 15 | + if (process.env.DEBUG) { |
18 | 16 | return console.log(hash.digest('hex'), Date.now() - start)
|
| 17 | + } |
| 18 | + |
19 | 19 | console.log(hash.digest('hex'))
|
20 | 20 | })
|
21 | 21 | }
|
22 |
| - |
23 |
| -if(!process.stdin.isTTY) { |
24 |
| - stream(argv[0], process.stdin) |
25 |
| -} else if (argv.length) { |
26 |
| - var filename = argv.pop() |
27 |
| - var alg = argv.pop() |
28 |
| - stream(alg, require('fs').createReadStream(filename)) |
29 |
| -} else { |
30 |
| - usage() |
31 |
| -} |
32 | 22 |
|
33 | 23 | function usage () {
|
34 | 24 | console.error('sha.js [algorithm=sha1] [filename] # hash filename with algorithm')
|
35 | 25 | console.error('input | sha.js [algorithm=sha1] # hash stdin with algorithm')
|
36 | 26 | console.error('sha.js --help # display this message')
|
37 | 27 | }
|
| 28 | + |
| 29 | +if (!process.stdin.isTTY) { |
| 30 | + pipe(argv[0], process.stdin) |
| 31 | + |
| 32 | +} else if (argv.length) { |
| 33 | + if (/--help|-h/.test(argv[0])) { |
| 34 | + usage() |
| 35 | + |
| 36 | + } else { |
| 37 | + var filename = argv.pop() |
| 38 | + var algorithm = argv.pop() |
| 39 | + pipe(algorithm, require('fs').createReadStream(filename)) |
| 40 | + } |
| 41 | +} else { |
| 42 | + usage() |
| 43 | +} |
0 commit comments