#!/bin/sh # # Select files with mc and MIME-encode them to stdout # trap 'r=$?; rm -f $tmpfile $tmpfile2 ~/.mc.sel; exit $r' 0 1 2 3 13 15 tmpfile=$(mktemp ~/.mminc.XXXXXX) || exit 1 tmpfile2=$(mktemp ~/.mminc.XXXXXX) || exit 1 while read -r line; do case "$line" in [Mm][Ii][Mm][Ee]-[Vv]ersion:* | [Cc]ontent-[Tt]ype:* | \ [Cc]ontent-[Tt]ransfer-[Ee]ncoding:*) [ -n "$hdr_done" ] && echo "$line" >>$tmpfile;; "") hdr_done=1;; *) redir=; [ -n "$hdr_done" ] && redir=">>$tmpfile" eval "echo \"$line\" $redir";; esac done mcsel -k; [ -f ~/.mc.sel ] || { cat $tmpfile; exit 1; } [ -s $tmpfile ] && opts="-m text/plain -f $tmpfile" oifs="$IFS"; IFS=" " for file in $(cat ~/.mc.sel); do IFS="$oifs" [ ! -f "$file" ] && \ { echo "Can't find file \`$file'" >/dev/console; continue; } type="$(file "$file" | magic2mime)" name=$(basename "$file") [ -n "$opts" ] && opts="$opts -n " opts="$opts -m $type';name=\"$name\"' -D \"$name\" -f \"$file\"" done eval "metasend -o $tmpfile2 -b $opts" cat $tmpfile2 .