|
|
@ -1337,3 +1337,64 @@ WriteStream.prototype.destroy = function(cb) { |
|
|
|
// There is no shutdown() for files.
|
|
|
|
WriteStream.prototype.destroySoon = WriteStream.prototype.end; |
|
|
|
|
|
|
|
|
|
|
|
// SyncWriteStream is internal. DO NOT USE.
|
|
|
|
// Temporary hack for process.stdout and process.stderr when piped to files.
|
|
|
|
function SyncWriteStream(fd) { |
|
|
|
this.fd = fd; |
|
|
|
this.writable = true; |
|
|
|
this.readable = false; |
|
|
|
}; |
|
|
|
util.inherits(SyncWriteStream, Stream); |
|
|
|
|
|
|
|
|
|
|
|
// Export
|
|
|
|
fs.SyncWriteStream = SyncWriteStream; |
|
|
|
|
|
|
|
|
|
|
|
SyncWriteStream.prototype.write = function(data, arg1, arg2) { |
|
|
|
var encoding, cb; |
|
|
|
|
|
|
|
// parse arguments
|
|
|
|
if (arg1) { |
|
|
|
if (typeof arg1 === 'string') { |
|
|
|
encoding = arg1; |
|
|
|
cb = arg2; |
|
|
|
} else if (typeof arg1 === 'function') { |
|
|
|
cb = arg1; |
|
|
|
} else { |
|
|
|
throw new Error("bad arg"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Change strings to buffers. SLOW
|
|
|
|
if (typeof data == 'string') { |
|
|
|
data = new Buffer(data, encoding); |
|
|
|
} |
|
|
|
|
|
|
|
fs.writeSync(this.fd, data, 0, data.length); |
|
|
|
|
|
|
|
if (cb) { |
|
|
|
process.nextTick(cb); |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
SyncWriteStream.prototype.end = function(data, arg1, arg2) { |
|
|
|
if (data) { |
|
|
|
this.write(data, arg1, arg2); |
|
|
|
} |
|
|
|
this.destroy(); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
SyncWriteStream.prototype.destroy = function() { |
|
|
|
fs.closeSync(this.fd); |
|
|
|
this.fd = null; |
|
|
|
this.emit('close'); |
|
|
|
return true; |
|
|
|
}; |
|
|
|
|
|
|
|
SyncWriteStream.prototype.destroySoon = SyncWriteStream.prototype.destroy; |
|
|
|