mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
tar import can now process files with out of order directories
This commit is contained in:
parent
51bede6541
commit
f00e1235f9
@ -78,7 +78,7 @@ async function importTar(importContext, fileBuffer, importRootNote) {
|
||||
};
|
||||
}
|
||||
|
||||
function getParentNoteId(filePath, parentNoteMeta) {
|
||||
async function getParentNoteId(filePath, parentNoteMeta) {
|
||||
let parentNoteId;
|
||||
|
||||
if (parentNoteMeta) {
|
||||
@ -94,7 +94,9 @@ async function importTar(importContext, fileBuffer, importRootNote) {
|
||||
parentNoteId = createdPaths[parentPath];
|
||||
}
|
||||
else {
|
||||
throw new Error(`Could not find existing path ${parentPath} for ${filePath}.`);
|
||||
// tar allows creating out of order records - i.e. file in a directory can appear in the tar stream before actual directory
|
||||
// (out-of-order-directory-records.tar in test set)
|
||||
parentNoteId = await saveDirectory(parentPath);
|
||||
}
|
||||
}
|
||||
|
||||
@ -181,7 +183,7 @@ async function importTar(importContext, fileBuffer, importRootNote) {
|
||||
|
||||
const noteId = getNoteId(noteMeta, filePath);
|
||||
const noteTitle = getNoteTitle(filePath, noteMeta);
|
||||
const parentNoteId = getParentNoteId(filePath, parentNoteMeta);
|
||||
const parentNoteId = await getParentNoteId(filePath, parentNoteMeta);
|
||||
|
||||
let note = await repository.getNote(noteId);
|
||||
|
||||
@ -205,6 +207,8 @@ async function importTar(importContext, fileBuffer, importRootNote) {
|
||||
}
|
||||
|
||||
createdPaths[filePath] = noteId;
|
||||
|
||||
return noteId;
|
||||
}
|
||||
|
||||
function getTextFileWithoutExtension(filePath) {
|
||||
@ -222,7 +226,7 @@ async function importTar(importContext, fileBuffer, importRootNote) {
|
||||
const {parentNoteMeta, noteMeta} = getMeta(filePath);
|
||||
|
||||
const noteId = getNoteId(noteMeta, filePath);
|
||||
const parentNoteId = getParentNoteId(filePath, parentNoteMeta);
|
||||
const parentNoteId = await getParentNoteId(filePath, parentNoteMeta);
|
||||
|
||||
if (noteMeta && noteMeta.isClone) {
|
||||
await new Branch({
|
||||
|
Loading…
x
Reference in New Issue
Block a user