59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
|
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)] [<winmail_file>]'
|
|||
|
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, 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 = $e
|
|||
|
}
|
|||
|
} $argv
|
|||
|
|
|||
|
if (eq $data '') {
|
|||
|
set data = $curdir'/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
|
|||
|
}
|
|||
|
}
|