_____                      _   
| ____|_ __ _ __   ___  ___| |_ 
|  _| | '__| '_ \ / _ \/ __| __|
| |___| |  | | | |  __/\__ \ |_ 
|_____|_|  |_| |_|\___||___/\__| 
    	               is back ! 
	    		

Fortune : Nostradamus dans ton shell !

Dernière édition : 03/07/2019

Image : Une diseuse de bonne aventure et sa boule de cristal

Sommaire

--------


Introduction

------------

Fortune est un programme originaire de BSD. Le principe est très simple, le programme va chercher dans une base de données (on appelle les BDD de fortune des cookies) une phrase au hasard pour ensuite l'afficher sur votre écran. À l'origine, fortune affichait des prédictions aléatoires à l'utilisateur. C'est de là que vient son nom ("Fortune teller" signifie "Diseuse de bonne aventure" dans la langue de Shakespeare). On peut utiliser fortune par exemple pour afficher un message d'accueil chaque fois qu'un utilisateur se connecte sur la machine.

[ sommaire ] | [ home ]


Installer fortune

-----------------

L'installation de fortune n'est pas compliquée. Sur Debian, on utilise la commande suivante :

$ sudo aptitude install fortune-mod

Le package rpm fortune-mod existe également pour les distributions CentOS et RedHat.

$ sudo yum install fortune-mod

Enfin, il est vraiment facile d'installer fortune depuis les sources également : consulter pour cela la documentation jointe.

Une fois l'installation terminée, les fichiers sont répartis comme suit (sauf installation exotique ...):

/usr/games/fortune

Il s'agit de l'exécutable fortune.

/usr/share/games/fortunes

C'est l'emplacement des fichiers cookies. Il existe beaucoup de ces fichiers sur le Net en plus des fichiers d'origine livrés avec le programme. Par ailleurs, les distributions en proposent d'autres sous forme de packages (nous en installerons un tout à l'heure). Cependant, il serait dommage de se limiter aux packages, car ils ne contiennent vraiment pas les meilleurs, et, en tout cas, pas l'intégralité de ce qui est disponible.

Par ailleurs, notons au passage que fortune dispose d'une page de manuel ("man fortune") concise mais complète dont il serait dommage de se priver.

[ sommaire ] | [ home ]


Utilisation

-----------

Il est possible d'essayer fortune immédiatement :

# /usr/games/fortune
You could live a better life, if you had a better mind and a better body.

Bon, tout fonctionne mais bien entendu, l'idéal est d'automatiser le processus. Une des utilisations fréquentes de fortune est d'afficher une phrase lorsqu'un utilisateur se connecte sur la machine. Il y a plusieurs manières d'arriver à ce résultat: pour que tous les utilisateurs de la machine en profitent, il faut éditer le fichier /etc/profile et ajouter à la fin la ligne suivante:

/usr/games/fortune

Pour ne cibler qu'un seul utilisateur, alors il suffit d'effectuer la même manipulation dans le fichier ~/.bash_profile (Souvent ce fichier n'existe pas encore : dans ce cas, il faut le créer).

[ sommaire ] | [ home ]


Trouver des cookies supplémentaires

-----------------------------------

À l'origine, fortune utilise une BDD en anglais. Mais il est parfaitement possible d'utiliser d'autres langues. Pour cela, il faut trouver des cookies supplémentaires.

Les distributions proposent généralement des paquets additionnels pour fortune. Sur Debian Stretch, voici ce qu'aptitude suivi d'un grep fr me propose :

$ aptitude search fortune | grep fr
p  fortunes-fr - French fortunes cookies
p  fortunes-mario - Fortunes files from Mario

Installons le paquet fortunes-fr pour voir ce qu'il a dans le ventre ...

$ sudo aptitude install fortunes-fr
[sudo] password for nemo:
The following NEW packages will be installed:
  fortunes-fr 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 313 kB of archives. After unpacking 821 kB will be used.
Get: 1 http://debian.proxad.net/debian stretch/main amd64 fortunes-fr all 0.65+nmu2 [313 kB]
Fetched 313 kB in 0s (987 kB/s)     
Preconfiguring packages ...
Selecting previously unselected package fortunes-fr.
(Reading database ... 214143 files and directories currently installed.)
Preparing to unpack .../fortunes-fr_0.65+nmu2_all.deb ...
Unpacking fortunes-fr (0.65+nmu2) ...
Setting up fortunes-fr (0.65+nmu2) ...

Pour le tester, il suffit de demander à fortune de piocher ses citations dans /usr/share/games/fortunes/fr et le tour est joué.

$ fortune /usr/share/games/fortunes/fr
On construit des maisons de fous pour faire croire à ceux
qui n'y sont pas enfermés qu'ils ont encore la raison. 
	-+- Michel de Montaigne -+-
Mais à vrai dire, il est si facile de créer des bases de cookies pour fortune qu'on en trouve un peu partout sur le Net. Alors certes, la qualité n'est pas toujours au rendez-vous pour les blagues, mais le fan de tel ou tel film, ou l'amateurs de citations d'un auteur célèbre a de bonnes chances de trouver son bonheur. À titre indicatif, voici quelques liens pour trouver des cookies supplémentaires.

Le plus fameux fortune francais, le "Guide du Neuneu sur Usenet", est disponible sur ce site. Toutefois, en dépit de son intéret historique indéniable, force est de constater que les vannes ont plutot mal vieilli ... Les blagues sur "Bill Porte" et autres "Windows Gate", ça fait très bug de l'an 2000 tout de même ... (quelle rigolade ce truc quand j'y repense ...)

En anglais, il y a bien entendu davantage de choix avec, par exemple, ces citations issues de la première trilogie Starwars proposées par splitbrain.org.

Prenons cet exemple pour voir une installation sans le système de package d'une distribution. Splitbrain nous propose le fichier fortune-starwars.tgz que tu peux télécharger via un navigateur ou, comme ici, avec wget.

$ wget https://www.splitbrain.org/_media/projects/fortunes/fortune-starwars.tgz

Décompresse maintenant l'archive à l'emplacement de ton choix :

$ tar zxvf fortune-starwars.tgz 
fortune-starwars/
fortune-starwars/starwars
fortune-starwars/starwars.dat
fortune-starwars/README

Il faut ensuite lire le README. L'installation recommandée est la suivante :

To install these fortunes, copy the .dat file to your fortunes directory.
(possibly /usr/games/lib/fortunes)

Bon, OK, sauf que notre répertoire à nous, c'est /usr/share/games/fortunes (Debian) ou /usr/share/games/fortune (CentOS)... Pas bien grave cela dit, nous allons copier notre fichier .dat à cet emplacement pistou.

$ sudo cp fortune-starwars/starwars.dat /usr/share/games/fortunes

Et voilà le travail, désormais tu peux demander à fortune d'utiliser tes nouveaux cookies.

$ fortune starwars
Luke Skywalker:
	I'm Luke Skywalker, I'm here to rescue you.

Notons au passage qu'il est possible de contraindre fortune à n'utiliser que tel ou tel fichier de cookies (par défaut, il fait un choix aléatoire parmi les fichiers disponibles). Pour cela, il suffit de préciser le nom du fichier cookies à utiliser au moment de lancer la commande. Par exemple, pour que fortune n'affiche que des citations du fichier literature, on tapera :

fortune literature

Toutes les combinaisons sont possibles (utiliser plusieurs fichiers au choix, et même de décider que dans 10% des cas, fortune affichera une phrase extraite de tel fichier et le temps restant une phrase extraite de tel autre): consulte le manuel (man fortune) pour tous les détails.

[ sommaire ] | [ home ]


Créer ses propres cookies

-------------------------

Une base de cookies comporte deux fichiers: le fichier "citations" et le fichier "citations.dat". Le premier est créé par l'auteur (donc toi), le .dat est généré automatiquement par la machine. La procédure de création est fort simple: il suffit de créer un fichier texte du nom de son choix (nous l'appelerons "mes_fortunes"). Puis tape chaque citation ou phrase de ton choix à la suite avec, entre chaque, une ligne contenant uniquement le symbole %. Cela donne quelque chose comme ceci:

Ceci est ma première citation désopilante hinhinhin
%
Ah tiens une bonne blague sur le celeri, hihihi
%
Et on continue avec une blague à tabac hahaha
elle prend 3 lignes
parce que un jeu de mot pareil prends de la place !
%
Allez encore une galéjade pour la route

etc. etc.

Quand le fichier est terminé, on le sauvegarde. Il faut maintenant générer la BDD correspondante. Pour cela, on utilise simplement la commande suivante:

$ strfile mes_fortunes

Le fichier mes_fortunes.dat est maintenant créé. Désormais, en tapant fortune /path/to/mes_fortunes, l'ordinateur affichera une phrase aléatoire choisie dans *ton* fichier. Spakoolsa ?

Bien entendu, le mieux est de copier ces deux fichiers dans /usr/share/games/fortunes afin que fortune le trouve automatiquement sans avoir à spécifier le path à chaque lancement de la commande.

[ sommaire ] | [ home ]