0.0.27 • Published 10 years ago
ttyrec v0.0.27
Ttyrec.js
a native implementation for encoding and decoding ttyrec files.
Usage
This implements a duplex / transform
stream v2 . Therefore only node v0.10.x is supported.
It also provides a few simple executable:
ttyrec
: records ttyrec file from the current terminalttyplay
: plays ttyrec filesttytime
: shows the number of seconds is in the ttyrecord filettyrec++
: similar to ttyrec but generator a json file
Installation
npm install ttyrec
Write recStream
var fs = require('fs');
var pty = require('pty');
var ttyrec = require('ttyrec');
var ttyrecStream = new ttyrec.recStream();
var fileStream = fs.createWriteStream('ttyrecord');
var _pty = pty.spawn('/bin/bash');
process.stdin.pipe(_pty);
_pty.pipe(ttyrecStream);
ttyrecStream.pipe(fileStream);
Read playStream
var fs = require('fs');
var ttyrec = require('ttyrec');
var fileStream = fs.createReadStream('ttyrecord');
var ttyplayStream = new ttyrec.playStream();
// Play at half the speed
ttyplayStream.setSpeed(0.5);
fileStream.pipe(ttyplayStream);
ttyplayStream.pipe(process.stdout);
parseStream
var fs = require('fs');
var ttyrec = require('ttyrec');
var fileStream = fs.createReadStream('ttyrecord');
var ttyparseStream = new ttyrec.parseStream();
// No waiting = speed 0
ttyparseStream.setSpeed(0);
fileStream.pipe(ttyparseStream);
ttyparseStream.on('data', function(record) {
console.log(record.header);
console.log(record.packet);
});
Encode
var ttyrec = require('ttyrec');
var encoder = ttyrec.encoder;
var sec = 0;
var usec = 10;
var record = encoder.encode(sec, usec, new Buffer('abc');
Decode (parseBuffer)
var ttyrec = require('ttyrec');
var decoder = ttyrec.decoder;
var results = decoder.decode(arecord);
// This returns an array of
// [0] = records
// [1] = rest of chunk not parsed
var records = result[0];
var record = records[0];
var rest = result[1];
var header = record.header;
console.log(header.sec, header.usec, header.length)
var packet = record.packet; // Buffer
console.log(packet.toString());
Limitations
- only handles buffer streams(non-encoded streams)
- only works versions v0.10.x (for v0.11 pty.js needs to be patched first)
Todo
- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)
- make v0.11 and v0.8 compatible
- handle special resizing escape codes for ttyrec
- browserify this code (almost, only process.hrtime does not exist in browser)
- help page
0.0.27
10 years ago
0.0.26
10 years ago
0.0.25
10 years ago
0.0.24
10 years ago
0.0.23
10 years ago
0.0.22
10 years ago
0.0.21
10 years ago
0.0.20
10 years ago
0.0.19
10 years ago
0.0.18
10 years ago
0.0.17
10 years ago
0.0.16
10 years ago
0.0.15
10 years ago
0.0.14
10 years ago
0.0.13
10 years ago
0.0.12
10 years ago
0.0.11
10 years ago
0.0.10
10 years ago
0.0.9
10 years ago
0.0.8
10 years ago
0.0.7
10 years ago
0.0.6
10 years ago
0.0.5
10 years ago
0.0.4
10 years ago
0.0.3
10 years ago
0.0.2
10 years ago