1 | #!/usr/bin/env node
|
2 |
|
3 |
|
4 |
|
5 | var Transform = require('stream').Transform
|
6 | var fs = require('fs')
|
7 | var http = require('http')
|
8 | var pickup = require('./')
|
9 | var repl = require('repl')
|
10 | var util = require('util')
|
11 |
|
12 | var ctx = repl.start({
|
13 | prompt: 'pickup> '
|
14 | , ignoreUndefined: true
|
15 | , input: process.stdin
|
16 | , output: process.stdout
|
17 | }).context
|
18 |
|
19 | ctx.cat = function (path) {
|
20 | return fs.createReadStream(path).pipe(
|
21 | pickup({ objectMode: true }))
|
22 | }
|
23 |
|
24 | util.inherits(UrlStream, Transform)
|
25 | function UrlStream (opts) {
|
26 | if (!(this instanceof UrlStream)) return new UrlStream(opts)
|
27 | Transform.call(this, opts)
|
28 | }
|
29 |
|
30 | UrlStream.prototype._transform = function (chunk, enc, cb) {
|
31 | var me = this
|
32 | http.get(chunk, function (res) {
|
33 | res.pipe(pickup({ objectMode: true }))
|
34 | .on('data', function (chunk) { me.push(chunk) })
|
35 | .on('finish', cb)
|
36 | })
|
37 | }
|
38 |
|
39 | ctx.get = function (url) {
|
40 | var stream = new UrlStream({ objectMode: true })
|
41 | stream.end(url)
|
42 | return stream
|
43 | }
|
44 |
|