edit:add-var winmail~ {|@argv| use path var curdir = (pwd) var tmpdir = (mktemp --tmpdir -d winmail-XXXXXXXX) var remove = $false var browse = $e:falkon~ var explore = $e:dolphin~ var data = '' fn print_help {|| echo 'winmail [(-h|-k|-r)] []' echo '' echo 'Options:' echo ' -h, --help Affiche cette aide' echo ' -k, --keep Conserve le fichier winmail.dat fourni en entrée (option par défaut)' echo ' -r, --remove Supprime le fichier winmail.dat une fois le programme terminé' echo '' echo 'Si le fichier de données winmail.dat n’est pas défini, utilise le winmail.dat du répertoire courant, si trouvé' } each {|e| if (or (eq $e -r) (eq $e --remove)) { set remove = $true } elif (or (eq $e -k) (eq $e --keep)) { set remove = $false } elif (or (eq $e -h) (eq $e --help)) { print_help exit } else { set data = (path:abs $e) } } $argv if (eq $data '') { set data = (path:abs 'winmail.dat') } if (not (path:is-regular $data)) { fail (printf 'Le fichier %s n’existe pas.' $data) } cd $tmpdir tnef --save-body $data if (path:is-regular message.html) { perl -pe 's/cid:(image(\\d{3})\.(jpe?g|png|gif))@[[:alnum:]]{8}\.[[:alnum:]]{8}/\\1/g' message.html > message2.html $browse message2.html > /dev/null 2> /dev/null } else { $explore . > /dev/null 2> /dev/null } cd $curdir rm -rf $tmpdir if $remove { rm $data } }