Sindre Sorhus
9 years ago
7 changed files with 62 additions and 57 deletions
@ -1,49 +1,52 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
var stdin = process.stdin; |
||||
|
|
||||
module.exports = function (cb) { |
module.exports = function () { |
||||
var stdin = process.stdin; |
|
||||
var ret = ''; |
var ret = ''; |
||||
|
|
||||
if (stdin.isTTY) { |
return new Promise(function (resolve) { |
||||
setImmediate(cb, ret); |
if (stdin.isTTY) { |
||||
return; |
resolve(ret); |
||||
} |
return; |
||||
|
} |
||||
|
|
||||
stdin.setEncoding('utf8'); |
stdin.setEncoding('utf8'); |
||||
|
|
||||
stdin.on('readable', function () { |
stdin.on('readable', function () { |
||||
var chunk; |
var chunk; |
||||
|
|
||||
while (chunk = stdin.read()) { |
while ((chunk = stdin.read())) { |
||||
ret += chunk; |
ret += chunk; |
||||
} |
} |
||||
}); |
}); |
||||
|
|
||||
stdin.on('end', function () { |
stdin.on('end', function () { |
||||
cb(ret); |
resolve(ret); |
||||
|
}); |
||||
}); |
}); |
||||
}; |
}; |
||||
|
|
||||
module.exports.buffer = function (cb) { |
module.exports.buffer = function () { |
||||
var stdin = process.stdin; |
|
||||
var ret = []; |
var ret = []; |
||||
var len = 0; |
var len = 0; |
||||
|
|
||||
if (stdin.isTTY) { |
return new Promise(function (resolve) { |
||||
setImmediate(cb, new Buffer('')); |
if (stdin.isTTY) { |
||||
return; |
resolve(new Buffer('')); |
||||
} |
return; |
||||
|
} |
||||
|
|
||||
stdin.on('readable', function () { |
stdin.on('readable', function () { |
||||
var chunk; |
var chunk; |
||||
|
|
||||
while (chunk = stdin.read()) { |
while ((chunk = stdin.read())) { |
||||
ret.push(chunk); |
ret.push(chunk); |
||||
len += chunk.length; |
len += chunk.length; |
||||
} |
} |
||||
}); |
}); |
||||
|
|
||||
stdin.on('end', function () { |
stdin.on('end', function () { |
||||
cb(Buffer.concat(ret, len)); |
resolve(Buffer.concat(ret, len)); |
||||
|
}); |
||||
}); |
}); |
||||
}; |
}; |
||||
|
@ -1,6 +1,6 @@ |
|||||
'use strict'; |
'use strict'; |
||||
var stdin = require('./'); |
var stdin = require('./'); |
||||
|
|
||||
stdin(function (data) { |
stdin().then(function (data) { |
||||
process.exit(data ? 0 : 1); |
process.exit(data ? 0 : 1); |
||||
}); |
}); |
||||
|
Loading…
Reference in new issue