Un outil nonymes de la langue française - retour accueil
git clone git://bebou.netlib.re/des
Log | Files | Refs | README |
commit c48ce141aec169e2f9b3e266cae8c41d02b7900c Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Sun, 6 Apr 2025 14:59:34 +0200 Premier commit Un README Un script qui s'autoconfigure, c'est marrant Diffstat:
A | README.md | | | 57 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | des | | | 51 | +++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 108 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md @@ -0,0 +1,57 @@ +# DES + +Un outil pour consulter les synonymes d'un mot français. + +## Dépendances + +Obligatoirement : + + * Un système d'exploitation vaguement POSIX (Linux, *BSD, MacOS) + * fzy (pour le petit menu) + +Optionnellement : + + * xclip (pour récupérer le dernier synonyme dans votre presse-papier) + * curl (pour l'éventuel téléchargement de la base de donnée en local) + +Pour installer `fzy` sur les distributions linux basée sur debian : + + sudo apt install fzy + +Sous MacOS si vous avez `brew` : + + brew install fzy + +## Usage + + $ des + +Au premier lancement le script vous demandera si vous souhaitez utiliser +l'outil en ligne ou hors ligne. En ligne le bon fonctionnement de la commande +dépendra d'une conneion internet et du statut du serveur `bebou.netlib.re`. +Hors-ligne nécessitera de télécharger 6Mo de données sur votre ordinateur. + +Une fois cette première configuration faite l'outil vous demandera un mot : + + Mot : + +Vous pouvez le taper puis appuyer sur "entrée". Une liste des synonymes et +leurs scores de proximité s'affichera : + + manger + > + > bouffer 20 + dévorer 19 + engloutir 14 + [...] + +Vous pouvez parcourir le menu avec les flèches haut/bas ou en tapant lesynonyme +de votre choix. + + + + +## Installation + +Pour installer le script vous pouvez le copier dans un dossier existant dans +votre `PATH` ou diff --git a/des b/des @@ -0,0 +1,51 @@ +#! /bin/sh + +set -e + +red="\033[91m"; norm="\033[0m" +if ! command -V fzy > /dev/null ;then + printf "${red}Il manque la commande fzy. Voir le README$norm\n" + exit 1 +fi + +# TOREMOVE +if grep -q "^# TOREMOVE$" "$0";then + printf "Voulez vous utiliser cet outil en ligne ou hors ligne ?\n" + printf "Pour voir les avantages et désavantages de chaque mode lisez le README :)\n" + mode=$(printf "En ligne\nHors ligne\nquitter\n" | fzy) + case $mode in + ('En ligne') mode="online";; + ('Hors ligne') + curl -Ls http://arthur.bebou.netlib.re/crisco-des/data > synonymes.tsv + mode="offline" + path="$(pwd)/synonymes.tsv";; + (*) printf "On ne fait rien\n"; exit 0;; + esac + < "$0" sed "/^# TOREMOVE$/,/^# TOREMOVE$/ d + /^# PATH/ s.*path=$path + /^# MODE/ s/.*/mode=$mode/" > .tmp + mv .tmp des; chmod +x des + exit 0 +fi +# TOREMOVE + +# MODE +# PATH + +read -p "Mot : " mot +while [ -n "$mot" ] +do + oldmot=$mot + echo $oldmot | cut -f1 + if [ "$mode" = "online" ];then + line=$(echo "synonyme $mot" | nc -N bebou.netlib.re 2222 | sed '1d') + else + line=$(grep "^$mot " "$path" | cut -f2- | tr '; ' ' \n') + fi + mot=$(echo "$line" | + column -ts' ' | + fzy -l 50 | + sed -E 's, *[0-9]+,,') +done + +command -V xclip > /dev/null && printf "$mot" | xclip -selection clipboard