main
Last change
on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago |
Initial commit
|
-
Property mode
set to
100644
|
File size:
991 bytes
|
Line | |
---|
1 | #! /usr/bin/env node
|
---|
2 |
|
---|
3 | var createHash = require('./browserify')
|
---|
4 | var argv = process.argv.slice(2)
|
---|
5 |
|
---|
6 | function pipe (algorithm, s) {
|
---|
7 | var start = Date.now()
|
---|
8 | var hash = createHash(algorithm || 'sha1')
|
---|
9 |
|
---|
10 | s.on('data', function (data) {
|
---|
11 | hash.update(data)
|
---|
12 | })
|
---|
13 |
|
---|
14 | s.on('end', function () {
|
---|
15 | if (process.env.DEBUG) {
|
---|
16 | return console.log(hash.digest('hex'), Date.now() - start)
|
---|
17 | }
|
---|
18 |
|
---|
19 | console.log(hash.digest('hex'))
|
---|
20 | })
|
---|
21 | }
|
---|
22 |
|
---|
23 | function usage () {
|
---|
24 | console.error('sha.js [algorithm=sha1] [filename] # hash filename with algorithm')
|
---|
25 | console.error('input | sha.js [algorithm=sha1] # hash stdin with algorithm')
|
---|
26 | console.error('sha.js --help # display this message')
|
---|
27 | }
|
---|
28 |
|
---|
29 | if (!process.stdin.isTTY) {
|
---|
30 | pipe(argv[0], process.stdin)
|
---|
31 | } else if (argv.length) {
|
---|
32 | if (/--help|-h/.test(argv[0])) {
|
---|
33 | usage()
|
---|
34 | } else {
|
---|
35 | var filename = argv.pop()
|
---|
36 | var algorithm = argv.pop()
|
---|
37 | pipe(algorithm, require('fs').createReadStream(filename))
|
---|
38 | }
|
---|
39 | } else {
|
---|
40 | usage()
|
---|
41 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.