des

Un outil pour récupérer les synonymes d'un mot de la langue française - retour accueil

Anonyme, en lecture seule : git clone git://bebou.netlib.re/des
Authentifié·e, en écriture : git clone ssh://git@bebou.netlib.re:1459/srv/git/des

Log | Files | Refs | README | zip | tar.gz |

des (1200B)


      1 #! /bin/sh
      2 
      3 set -e
      4 
      5 
      6 mode=online
      7 path=/home/arthur/git/des/synonymes.tsv
      8 
      9 usage() {
     10 cat <<.
     11 Affiche les synonymes d'un mot de la langue française. Les données proviennent
     12 du DES du CRISCO.
     13 
     14 Usage : des [-h] [-d] [mot]
     15 
     16 Arguments :
     17 
     18 	*  -h : Imprime cette aide
     19 	*  -d : Fonctionnement non interactif. Affiche le résultat et ne propose
     20 	        pas de choisir un nouveau mot parmi les résultats.
     21 	* mot : Le mot dont on veut les synonymes. S'il est absent alors l'outil le
     22 	        demandera lui même.
     23 .
     24 }
     25 
     26 case "$1" in
     27 	(-d) dump=yes; shift;;
     28 	(-h) usage; exit 0;;
     29 esac
     30 [ "$1" ] && mot="$*" || { printf "Mot : "; read -r mot; }
     31 
     32 while [ -n "$mot" ]
     33 do
     34 	oldmot="$mot"
     35 	echo "$oldmot" | cut -f1
     36 	if [ "$mode" = "online" ];then
     37 		line=$(echo "synonyme $mot" | nc -N bebou.netlib.re 2222 | sed '1d')
     38 	else
     39 		line=$(grep "^$mot	" "$path" | cut -f2- | tr ';	' '	\n')
     40 	fi
     41 	mot=$(echo "$line" | column -ts'	')
     42 	if command -V fzy > /dev/null && [ ! "$dump" ]; then
     43 		command -V xclip > /dev/null && printf "%s" "$oldmot" | xclip -selection clipboard
     44 		mot=$(echo "$mot" | fzy -l 50 | sed -E 's, *[0-9]+,,')
     45 	else
     46 		echo "$mot"
     47 		oldmot=$(echo "$mot" | head -n1 | sed -E 's, *[0-9]+,,')
     48 		exit 0
     49 	fi
     50 done
     51