mirror of
https://github.com/musix-org/musix-oss
synced 2025-07-07 07:30:50 +00:00
fix
This commit is contained in:
71
node_modules/seek-bzip/bin/seek-bzip-table
generated
vendored
Normal file
71
node_modules/seek-bzip/bin/seek-bzip-table
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var program = require('commander');
|
||||
var Bunzip = require('../');
|
||||
var fs = require('fs');
|
||||
|
||||
program
|
||||
.version(Bunzip.version)
|
||||
.usage('[infile]')
|
||||
.option('-m, --multistream',
|
||||
'Read a multistream bzip2 file');
|
||||
program.on('--help', function() {
|
||||
console.log(' If <infile> is omitted, reads from stdin.');
|
||||
});
|
||||
program.parse(process.argv);
|
||||
|
||||
var makeInStream = function(in_fd) {
|
||||
var stat = fs.fstatSync(in_fd);
|
||||
var stream = {
|
||||
buffer: new Buffer(4096),
|
||||
totalPos: 0,
|
||||
pos: 0,
|
||||
end: 0,
|
||||
_fillBuffer: function() {
|
||||
this.end = fs.readSync(in_fd, this.buffer, 0, this.buffer.length);
|
||||
this.pos = 0;
|
||||
},
|
||||
readByte: function() {
|
||||
if (this.pos >= this.end) { this._fillBuffer(); }
|
||||
if (this.pos < this.end) {
|
||||
this.totalPos++;
|
||||
return this.buffer[this.pos++];
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
read: function(buffer, bufOffset, length) {
|
||||
if (this.pos >= this.end) { this._fillBuffer(); }
|
||||
var bytesRead = 0;
|
||||
while (bytesRead < length && this.pos < this.end) {
|
||||
buffer[bufOffset++] = this.buffer[this.pos++];
|
||||
bytesRead++;
|
||||
}
|
||||
this.totalPos += bytesRead;
|
||||
return bytesRead;
|
||||
},
|
||||
eof: function() {
|
||||
if (this.pos >= this.end) { this._fillBuffer(); }
|
||||
return !(this.pos < this.end);
|
||||
}
|
||||
};
|
||||
if (stat.size) {
|
||||
stream.size = stat.size;
|
||||
}
|
||||
return stream;
|
||||
};
|
||||
|
||||
var in_fd = 0, close_in = function(){};
|
||||
if (program.args.length > 0) {
|
||||
in_fd = fs.openSync(program.args.shift(), 'r');
|
||||
close_in = function() { fs.closeSync(in_fd); };
|
||||
}
|
||||
|
||||
var inStream = makeInStream(in_fd);
|
||||
|
||||
var report = function(position, blocksize) {
|
||||
console.log(position+'\t'+blocksize);
|
||||
};
|
||||
|
||||
Bunzip.table(inStream, report, program.multistream);
|
||||
close_in();
|
||||
return 0;
|
Reference in New Issue
Block a user