Avant toute chose, rappelons que le logiciel a été développé en JavaScript, il faut alors s’assurer que votre ordinateur dispose bien d'un interpréteur JavaScript tel que Node.JS. Sinon vous pouvez télécharger ce dernier sur : https://nodejs.org/en/download/.
Pour vérifier l’état de Node.JS sur votre ordinateur, il faut taper : node -v
Téléchargez directement le projet depuis le bouton en haut de la page depuis l'invite de terminal placez-vous dans le dossier de votre choix et entrez la commande :
svn checkout https://svn.code.sf.net/p/ingeance-gl02/code/ ingeance-gl02-code
La commande : npm install
se charge d'installer toutes les dépendences nécessaires au fonctionnement du logiciel, ces dernières sont référencés dans le fichier package.json
La dernier version à jour du logiciel se trouve ensuite dans le dossier trunk, libre à vous de le modifier ou de le cloner vers une brance (vivement conseillé pour l'ajout de nouvelles fonctionnalités)
. ├── branches/ ├── trunk/ | ├── cli/ | | ├── commands/ | | | ├── authorTweet.js | | | ├── countHashtags.js | | | ├── display.js | | | ├── echo.js | | | ├── hashtagsLinked.js | | | ├── longestDescription.js | | | ├── plot.js | | | ├── retweetedHashtag.js | | | └── search.js | | └── index.js | ├── data/ | | └── ... | ├── parsers/ | | ├── Grapher.js | | ├── Tweet.js | | ├── TweetAnalyzer.js | | ├── TweetDisplay.js | | └── exportTxt.js | ├── tests/ | | └── ... | ├── package-lock.json | └── package.json
Le logiciel a été développé autour du framework Caporal, qui permet au développeur de construire simplement un programme en ligne de commande en JavaScript avec l'environnement de Node.JS
L'ajout d'une fonctionnalité passe par la création d'un nouveau fichier dans le dossier commands/ qui sera par la suite automatiquement chargé lors du lancement du programme (donc aucune nécessité d'aller modifier le fichier index.js pour ajouter une fonctionnalité).
Les commandes suivent la structure suivante :
macommande .command('nomcommande', 'Description de la commande') [.argument('<argument>', 'Description de l'argument')]* [.option('<--raccourcis>, <--nomCompletOption>', 'Description de l'option')]* .action(function (args, options, logger) { // Fonction de callback appelé lorsque l'utilisateur entre nomcommande dans la ligne de commande. })