浏览代码

Correction bug coupure entre parse et find quand option process

Loquicom 5 年之前
父节点
当前提交
7d0e030d36
共有 2 个文件被更改,包括 18 次插入9 次删除
  1. 18 8
      main.js
  2. 0 1
      src/parser/parser.js

+ 18 - 8
main.js

@@ -25,7 +25,9 @@ program
     .action((source, destination = preprocessFile) => {
         if (file.exist(source)) {
             verbose = true;
-            parse(source, destination);
+            parse(source, destination, () => {
+                process.exit();
+            });
         } else {
             console.error(cst.toString(cst.FILE_NOT_FOUND) + ': ' + source);
             process.exit(cst.FILE_NOT_FOUND);
@@ -65,19 +67,23 @@ if (process.argv[2] !== 'prepare') {
         }).then(answer => {
             // Lancement du prgramme
             if (program.process) {
-                parse(source, preprocessFile);
-                source = preprocessFile;
+                parse(source, preprocessFile, ppf => {
+                    find(ppf, name);
+                });
+            } else {
+                find(source, answer.name);
             }
-            find(source, answer.name);
         });
     }
     // Sinon on lance le programme
     else {
         if (program.process) {
-            parse(source, preprocessFile);
-            source = preprocessFile;
+            parse(source, preprocessFile, ppf => {
+                find(ppf, name);
+            });
+        } else {
+            find(source, name);
         }
-        find(source, name);
     }
 }
 
@@ -85,8 +91,9 @@ if (process.argv[2] !== 'prepare') {
  * Prepare le document XML pour la recherche des co-auteurs
  * @param source Chemin vers le fichier XML
  * @param dest Chemin pour créer le fichier avec les données traitées
+ * @param callback Fonction à appelet après l'analyse, prend en parametre le chemin vers le fichier .ppf
  */
-function parse(source, dest) {
+function parse(source, dest, callback = null) {
     // Verification que l'extension du fichier dest est bien .ppf
     if (file.getExtension(dest) !== 'ppf') {
         dest += '.ppf';
@@ -103,6 +110,9 @@ function parse(source, dest) {
             timer.stop();
             console.info(`Pre-processing file created at ${dest} in ${timer.time()}`);
         }
+        if (callback !== null) {
+            callback(dest);
+        }
     });
 }
 

+ 0 - 1
src/parser/parser.js

@@ -90,7 +90,6 @@ const parser = class Parser {
             if (instance.callback !== null) {
                 instance.callback(instance.dest);
             }
-            process.exit();
         } else if (instance._inTag && instance._tag === tag) {
             instance._inTag = false;
             // On ne garde que les groupes d'auteurs