| 
					
				 | 
			
			
				@@ -0,0 +1,53 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#!/usr/bin/env node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Imports 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const program = require('commander'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const inquirer = require('inquirer'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const file = require('./src/file'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const cst = require('./src/constant'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const timer = require('./src/timer'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Variables configs et globales 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let sourceFile = './data/data.ppf'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let verbose = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Parametrage CLI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+program.version('0.0.1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+program 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .option('-n, --name <string>', 'Nom de l\'auteur dont il faut chercher les co-auteurs') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .option('-f, --file <source>', 'Chemin vers le fichier à utiliser pour la recherche des co-auteurs', sourceFile) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .option('-v, --verbose', 'Affiche plus d\'informations', verbose); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Parse des arguments CLI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+program.parse(process.argv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const name = (program.name && typeof program.name === 'string') ? program.name : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let source = program.file; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+verbose = program.verbose; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Verification que le fichier du pre-traitement existe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (!file.exist(source)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Impossible de trouver le fichier XML à traiter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.error(cst.toString(cst.FILE_NOT_FOUND) + ': ' + source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    process.exit(cst.FILE_NOT_FOUND); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// En cas d'absence de nom on le demande 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (name === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    inquirer.prompt({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: 'input', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name: 'name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message: 'Enter the name of the author whose information you want to extract: >', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }).then(answer => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Lancement du prgramme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        extract(source, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Sinon on lance le programme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extract(source, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function extract(source, name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //TODO Extraction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |