URL: https://linuxfr.org/users/polaris/journaux/script-inint%C3%A9ressant Title: Script inintéressant Authors: Polaris Date: 2004年10月30日T16:46:01+02:00 Tags: Score: 0 C'est un script perso qui sert à redimensionner et envoyer par mail une série d'images sélectionnées dans nautilus. Il m'a été offert généreusement il y a quelques temps dans ces pages, je l'ai un peu trafiqué, et je le met à disposition parce qu'une âme égarée m'a demandé si c'était possible. Il manque plein de choses, par exemple vérifier qu'on est pas en train de redimensionner des fichiers word, vérifier qu'on essaye pas d'écrire des images redimensionnées sur un Cd-rom, vérifier que les images originales ne sont pas ridiculement petites, ce genre de choses. Je vous avais prévenu dans le titre que c'était inintéressant, ne venez pas vous plaindre. Toute âme généreuse qui voudrait contribuer à rendre ce programme plus robuste, plus élégant, plus pratique, etc... est invitée à le faire ici même. Je suis preneur d'une traduction en python, vu que j'aimerais me mettre à ce langage. #!/bin/sh # On choppe le répertoire courant... depuis Nautilus, aucun problème # sauf si vous êtes assez tordus pour faire des sélections sur plusieurs # répertoires. # Par contre si vous utilisez ce script dans un shell il prend le # répertoire courant, donc ne vous amusez pas avec des invocations # exotiques, ou réparez ça d'abord.. if [ "x$NAUTILUS_SCRIPT_CURRENT_URI" = "x" ]; then £spaces£ £/spaces£workdir=$(pwd) #FIXME else £spaces£ £/spaces£workdir=$(echo $NAUTILUS_SCRIPT_CURRENT_URI| sed 's/file:\/\///g') fi £spaces£ £/spaces£ res=$(zenity --list --title "$workdir" --height=200 --radiolist --column "" --column "Taille" TRUE 200x200 FALSE 150x150 FALSE 100x100) [ "x$res" == "x" ] && exit # On fait un répertoire pour les images redimensionnées # Au final, on peut aussi les coller dans /tmp mkdir -p $workdir/$res # On bosse... while [ $# -gt 0 ]; do £spaces£ £/spaces£f=1ドル £spaces£ £/spaces£file=$(echo $f | sed 's/"$NAUTILUS_SCRIPT_CURRENT_URI"//g') £spaces£ £/spaces£# On place une copie redimensionnée de l'image dans le répertoire £spaces£ £/spaces£convert $workdir/$file -scale $res $workdir/$res/$file £spaces£ £/spaces£# On prépare la liste de fichiers à attacher £spaces£ £/spaces£file=$(echo file://$workdir/$res/$file) £spaces£ £/spaces£if [ "x$attachments" = "x" ]; then £spaces£ £/spaces£attachments=$(echo $file) £spaces£ £/spaces£else £spaces£ £/spaces£attachments=$(echo $attachments, $file) £spaces£ £/spaces£fi £spaces£ £/spaces£shift done # On rajoute des quotes autour des arguments pour limiter certaines # catastrophes... attachments=$(echo \'$attachments\') # On invoque le mailer avec les fichiers à attacher en argument # Le bête mozilla-thunderbird -remote est buggé, d'où le chemin complet vers # xremote-client /usr/lib/mozilla-thunderbird/mozilla-thunderbird-xremote-client "xfeDoCommand(composeMessage,attachment=$attachments)" # Malgré tout, le truc se vautre en beauté si les noms de fichier sont bizarres, # comportent des espaces ou ce genre de chose. # Le stripping est laissé en exercice au lecteur.