extract.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/env node
  2. // Imports
  3. const program = require('commander');
  4. const inquirer = require('inquirer');
  5. const file = require('./src/file');
  6. const cst = require('./src/constant');
  7. const timer = require('./src/timer');
  8. // Variables configs et globales
  9. let sourceFile = './data/dblp.xml';
  10. let verbose = false;
  11. // Parametrage CLI
  12. program.version('0.0.1');
  13. program
  14. .option('-n, --name <string>', 'Nom de l\'auteur dont il faut chercher les co-auteurs')
  15. .option('-f, --file <source>', 'Chemin vers le fichier à utiliser pour la recherche des co-auteurs', sourceFile)
  16. .option('-v, --verbose', 'Affiche plus d\'informations', verbose);
  17. // Parse des arguments CLI
  18. program.parse(process.argv);
  19. const name = (program.name && typeof program.name === 'string') ? program.name : null;
  20. let source = program.file;
  21. verbose = program.verbose;
  22. // Verification que le fichier du pre-traitement existe
  23. if (!file.exist(source)) {
  24. // Impossible de trouver le fichier XML à traiter
  25. console.error(cst.toString(cst.FILE_NOT_FOUND) + ': ' + source);
  26. process.exit(cst.FILE_NOT_FOUND);
  27. }
  28. // En cas d'absence de nom on le demande
  29. if (name === null) {
  30. inquirer.prompt({
  31. type: 'input',
  32. name: 'name',
  33. message: 'Enter the name of the author whose information you want to extract: >',
  34. }).then(answer => {
  35. // Lancement du prgramme
  36. extract(source, answer.name);
  37. });
  38. }
  39. // Sinon on lance le programme
  40. else {
  41. extract(source, name);
  42. }
  43. function extract(source, name) {
  44. name = name.trim();
  45. if (verbose) {
  46. console.info(`Extraction of ${name}'s information...`);
  47. timer.start();
  48. }
  49. //TODO Extraction
  50. if (verbose) {
  51. timer.stop();
  52. console.info(`Information about ${name} extracted in ${timer.time()}`);
  53. }
  54. }