Update lbry-format
This commit is contained in:
parent
3bc34d5109
commit
cc944a9d3d
3 changed files with 78 additions and 74 deletions
|
@ -87,7 +87,6 @@ async function packDirectory(directory, options = {}) {
|
||||||
writeFirstEntry(options, tarPack);
|
writeFirstEntry(options, tarPack);
|
||||||
|
|
||||||
await walkAndRun(async (file) => {
|
await walkAndRun(async (file) => {
|
||||||
try{
|
|
||||||
contents = await readFile(path.normalize(file));
|
contents = await readFile(path.normalize(file));
|
||||||
|
|
||||||
// Must be chunked to avoid issues with fixed memory limits.
|
// Must be chunked to avoid issues with fixed memory limits.
|
||||||
|
@ -113,7 +112,7 @@ async function packDirectory(directory, options = {}) {
|
||||||
|
|
||||||
contents = zstd.compressChunks(chunkIterator, contents.length, COMPRESSION_LEVEL);
|
contents = zstd.compressChunks(chunkIterator, contents.length, COMPRESSION_LEVEL);
|
||||||
|
|
||||||
let name = path.relative(packRoot, file);
|
let name = path.relative(packRoot, file).replace('\\', '/');
|
||||||
|
|
||||||
if(/^\.\//.test(name)) {
|
if(/^\.\//.test(name)) {
|
||||||
name = name.slice(2);
|
name = name.slice(2);
|
||||||
|
@ -126,9 +125,8 @@ async function packDirectory(directory, options = {}) {
|
||||||
});
|
});
|
||||||
|
|
||||||
await writeStream(entry, contents);
|
await writeStream(entry, contents);
|
||||||
//console.log(contents)
|
|
||||||
entry.end();
|
entry.end();
|
||||||
}catch (e){console.log(e)}
|
|
||||||
}, directory, packRoot);
|
}, directory, packRoot);
|
||||||
tarPack.finalize();
|
tarPack.finalize();
|
||||||
};
|
};
|
||||||
|
@ -154,42 +152,46 @@ function streamToBuffer(stream) {
|
||||||
|
|
||||||
|
|
||||||
async function unpackDirectory(directory, options = {}) {
|
async function unpackDirectory(directory, options = {}) {
|
||||||
if(!fs.existsSync(directory)) {
|
return new Promise(async (resolve) => {
|
||||||
fs.mkdirSync(directory);
|
if(!fs.existsSync(directory)) {
|
||||||
}
|
fs.mkdirSync(directory);
|
||||||
|
|
||||||
const fileReadStream = getFileReadStream(options);
|
|
||||||
const zstd = await getZstd();
|
|
||||||
|
|
||||||
const extract = tar.extract();
|
|
||||||
|
|
||||||
extract.on('entry', async (header, fileStream, next) => {
|
|
||||||
let contents = await streamToBuffer(fileStream);
|
|
||||||
contents = new Uint8Array(contents);
|
|
||||||
|
|
||||||
contents = zstd.decompress(contents);
|
|
||||||
|
|
||||||
if(!/^\./.test(header.name)) {
|
|
||||||
if(header.name == 'index.html') {
|
|
||||||
console.log(String.fromCharCode.apply(null, contents))
|
|
||||||
}
|
|
||||||
const writePath = path.join(directory, header.name);
|
|
||||||
fs.promises.mkdir(path.dirname(writePath), { recursive: true });
|
|
||||||
var fileWriteStream = fs.createWriteStream(writePath);
|
|
||||||
fileWriteStream.write(contents);
|
|
||||||
fileWriteStream.end();
|
|
||||||
next();
|
|
||||||
} else {
|
|
||||||
fileStream.resume();
|
|
||||||
next();
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
extract.on('finish', () => {
|
const fileReadStream = getFileReadStream(options);
|
||||||
// all entries read
|
const zstd = await getZstd();
|
||||||
});
|
|
||||||
|
|
||||||
fileReadStream.pipe(extract);
|
const extract = tar.extract();
|
||||||
|
|
||||||
|
extract.on('entry', async (header, fileStream, next) => {
|
||||||
|
let contents = await streamToBuffer(fileStream);
|
||||||
|
contents = new Uint8Array(contents);
|
||||||
|
|
||||||
|
contents = zstd.decompress(contents);
|
||||||
|
|
||||||
|
if(!/^\./.test(header.name)) {
|
||||||
|
const writePath = path.join(directory, header.name);
|
||||||
|
|
||||||
|
try {
|
||||||
|
fs.mkdirSync(path.dirname(writePath), { recursive: true });
|
||||||
|
} catch (e) {
|
||||||
|
// Directory exists
|
||||||
|
}
|
||||||
|
const fileWriteStream = fs.createWriteStream(writePath);
|
||||||
|
fileWriteStream.write(contents);
|
||||||
|
fileWriteStream.end();
|
||||||
|
next();
|
||||||
|
} else {
|
||||||
|
fileStream.resume();
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.on('finish', () => {
|
||||||
|
resolve(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
fileReadStream.pipe(extract);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -87,7 +87,6 @@ async function packDirectory(directory, options = {}) {
|
||||||
writeFirstEntry(options, tarPack);
|
writeFirstEntry(options, tarPack);
|
||||||
|
|
||||||
await walkAndRun(async (file) => {
|
await walkAndRun(async (file) => {
|
||||||
try{
|
|
||||||
contents = await readFile(path.normalize(file));
|
contents = await readFile(path.normalize(file));
|
||||||
|
|
||||||
// Must be chunked to avoid issues with fixed memory limits.
|
// Must be chunked to avoid issues with fixed memory limits.
|
||||||
|
@ -113,7 +112,7 @@ async function packDirectory(directory, options = {}) {
|
||||||
|
|
||||||
contents = zstd.compressChunks(chunkIterator, contents.length, COMPRESSION_LEVEL);
|
contents = zstd.compressChunks(chunkIterator, contents.length, COMPRESSION_LEVEL);
|
||||||
|
|
||||||
let name = path.relative(packRoot, file);
|
let name = path.relative(packRoot, file).replace('\\', '/');
|
||||||
|
|
||||||
if(/^\.\//.test(name)) {
|
if(/^\.\//.test(name)) {
|
||||||
name = name.slice(2);
|
name = name.slice(2);
|
||||||
|
@ -126,9 +125,8 @@ async function packDirectory(directory, options = {}) {
|
||||||
});
|
});
|
||||||
|
|
||||||
await writeStream(entry, contents);
|
await writeStream(entry, contents);
|
||||||
//console.log(contents)
|
|
||||||
entry.end();
|
entry.end();
|
||||||
}catch (e){console.log(e)}
|
|
||||||
}, directory, packRoot);
|
}, directory, packRoot);
|
||||||
tarPack.finalize();
|
tarPack.finalize();
|
||||||
};
|
};
|
||||||
|
@ -154,42 +152,46 @@ function streamToBuffer(stream) {
|
||||||
|
|
||||||
|
|
||||||
async function unpackDirectory(directory, options = {}) {
|
async function unpackDirectory(directory, options = {}) {
|
||||||
if(!fs.existsSync(directory)) {
|
return new Promise(async (resolve) => {
|
||||||
fs.mkdirSync(directory);
|
if(!fs.existsSync(directory)) {
|
||||||
}
|
fs.mkdirSync(directory);
|
||||||
|
|
||||||
const fileReadStream = getFileReadStream(options);
|
|
||||||
const zstd = await getZstd();
|
|
||||||
|
|
||||||
const extract = tar.extract();
|
|
||||||
|
|
||||||
extract.on('entry', async (header, fileStream, next) => {
|
|
||||||
let contents = await streamToBuffer(fileStream);
|
|
||||||
contents = new Uint8Array(contents);
|
|
||||||
|
|
||||||
contents = zstd.decompress(contents);
|
|
||||||
|
|
||||||
if(!/^\./.test(header.name)) {
|
|
||||||
if(header.name == 'index.html') {
|
|
||||||
console.log(String.fromCharCode.apply(null, contents))
|
|
||||||
}
|
|
||||||
const writePath = path.join(directory, header.name);
|
|
||||||
fs.promises.mkdir(path.dirname(writePath), { recursive: true });
|
|
||||||
var fileWriteStream = fs.createWriteStream(writePath);
|
|
||||||
fileWriteStream.write(contents);
|
|
||||||
fileWriteStream.end();
|
|
||||||
next();
|
|
||||||
} else {
|
|
||||||
fileStream.resume();
|
|
||||||
next();
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
extract.on('finish', () => {
|
const fileReadStream = getFileReadStream(options);
|
||||||
// all entries read
|
const zstd = await getZstd();
|
||||||
});
|
|
||||||
|
|
||||||
fileReadStream.pipe(extract);
|
const extract = tar.extract();
|
||||||
|
|
||||||
|
extract.on('entry', async (header, fileStream, next) => {
|
||||||
|
let contents = await streamToBuffer(fileStream);
|
||||||
|
contents = new Uint8Array(contents);
|
||||||
|
|
||||||
|
contents = zstd.decompress(contents);
|
||||||
|
|
||||||
|
if(!/^\./.test(header.name)) {
|
||||||
|
const writePath = path.join(directory, header.name);
|
||||||
|
|
||||||
|
try {
|
||||||
|
fs.mkdirSync(path.dirname(writePath), { recursive: true });
|
||||||
|
} catch (e) {
|
||||||
|
// Directory exists
|
||||||
|
}
|
||||||
|
const fileWriteStream = fs.createWriteStream(writePath);
|
||||||
|
fileWriteStream.write(contents);
|
||||||
|
fileWriteStream.end();
|
||||||
|
next();
|
||||||
|
} else {
|
||||||
|
fileStream.resume();
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.on('finish', () => {
|
||||||
|
resolve(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
fileReadStream.pipe(extract);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue