Work on new archivers layout, short/long desc file discovery
This commit is contained in:
parent
9593da5626
commit
61b0658743
|
@ -214,9 +214,9 @@ module.exports = class ArchiveUtil {
|
|||
// }
|
||||
|
||||
const entries = [];
|
||||
const entryMatchRe = new RegExp(archiver.list.entryMatch, 'g');
|
||||
const entryMatchRe = new RegExp(archiver.list.entryMatch, 'gm');
|
||||
let m;
|
||||
while(null !== (m = entryMatchRe.exec(output))) {
|
||||
while((m = entryMatchRe.exec(output))) {
|
||||
// :TODO: allow alternate ordering!!!
|
||||
entries.push({
|
||||
size : m[1],
|
||||
|
|
|
@ -226,12 +226,62 @@ function getDefaultConfig() {
|
|||
list : {
|
||||
cmd : '7z',
|
||||
args : [ 'l', '{archivePath}' ],
|
||||
entryMatch : '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Za-z\\.]{5}\\s+([0-9]+)\\s+[0-9]+\\s+([^\\n]+)$',
|
||||
entryMatch : '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Za-z\\.]{5}\\s+([0-9]+)\\s+[0-9]+\\s+([^\\r\\n]+)$',
|
||||
},
|
||||
extract : {
|
||||
cmd : '7z',
|
||||
args : [ 'x', '-o{extractPath}', '{archivePath}', '{fileList}' ],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
archivers2 : {
|
||||
tools : {
|
||||
'7Zip' : {
|
||||
compress : {
|
||||
cmd : '7z',
|
||||
args : [ 'a', '-tzip', '{archivePath}', '{fileList}' ],
|
||||
},
|
||||
decompress : {
|
||||
cmd : '7z',
|
||||
args : [ 'e', '-o{extractPath}', '{archivePath}' ]
|
||||
},
|
||||
list : {
|
||||
cmd : '7z',
|
||||
args : [ 'l', '{archivePath}' ],
|
||||
entryMatch : '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Za-z\\.]{5}\\s+([0-9]+)\\s+[0-9]+\\s+([^\\r\\n]+)$',
|
||||
},
|
||||
extract : {
|
||||
cmd : '7z',
|
||||
args : [ 'x', '-o{extractPath}', '{archivePath}', '{fileList}' ],
|
||||
},
|
||||
}
|
||||
},
|
||||
formats : {
|
||||
zip : {
|
||||
sig : '504b0304',
|
||||
offset : 0,
|
||||
exts : [ 'zip' ],
|
||||
tool : '7Zip',
|
||||
},
|
||||
'7z' : {
|
||||
sig : '377abcaf271c',
|
||||
offset : 0,
|
||||
exts : [ '7z' ],
|
||||
tool : '7Zip',
|
||||
},
|
||||
arj : {
|
||||
sig : '60ea',
|
||||
offset : 0,
|
||||
exts : [ 'arj' ],
|
||||
tool : '7Zip',
|
||||
},
|
||||
rar : {
|
||||
sig : '526172211a0700',
|
||||
offset : 0,
|
||||
exts : [ 'rar' ],
|
||||
tool : '7Zip',
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -143,13 +143,25 @@ function getExistingFileEntriesBySha1(sha1, cb) {
|
|||
function addNewArchiveFileEnty(fileEntry, filePath, archiveType, cb) {
|
||||
const archiveUtil = ArchiveUtil.getInstance();
|
||||
|
||||
async.series(
|
||||
async.waterfall(
|
||||
[
|
||||
function getArchiveFileList(callback) {
|
||||
// :TODO: get list of files in archive
|
||||
function getArchiveFileList(callback) {
|
||||
archiveUtil.listEntries(filePath, archiveType, (err, entries) => {
|
||||
return callback(err);
|
||||
});
|
||||
return callback(null, entries || []); // ignore any errors here
|
||||
});
|
||||
},
|
||||
function extractDescFiles(entries, callback) {
|
||||
|
||||
// :TODO: would be nice if these RegExp's were cached
|
||||
const shortDescFile = entries.find( e => {
|
||||
return Config.fileBase.fileNamePatterns.shortDesc.find( pat => new RegExp(pat, 'i').test(e.fileName) );
|
||||
});
|
||||
|
||||
const longDescFile = entries.find( e => {
|
||||
return Config.fileBase.fileNamePatterns.longDesc.find( pat => new RegExp(pat, 'i').test(e.fileName) );
|
||||
});
|
||||
|
||||
return callback(null);
|
||||
}
|
||||
],
|
||||
err => {
|
||||
|
|
Loading…
Reference in New Issue