#!/bin/sh
#
#
# glob eml files into mbox
#
# restart using tcl \
exec tclsh8.3 "$0" "$@"
if { $argc != 1 } {
puts "globeml <outfile>"
exit 1
}
proc parseDate { str } {
# from: Date: Wed, 11 Dec 2002 21:48:26 -0500
# to : Tue Jan 14 17:05:06 2003
set DayOfWeek [string range $str 6 8]
set Month [string range $str 14 16]
set Day [string range $str 11 12]
set Time [string range $str 23 30]
set Year [string range $str 18 21]
return "$DayOfWeek $Month $Day $Time $Year"
}
set fname [lindex $argv 0]
set oid [open [lindex $argv 0] "w"]
foreach eml [glob *.eml] {
# read email
set fid [open "$eml" "r"]
set emltext [read $fid]
close $fid
# get date
set ind [string first "Date:" $emltext]
set indend [string first "\n" $emltext $ind]
set datetext [string range $emltext $ind [expr $indend-1]]
set date [parseDate $datetext]
# prevent errors from duplicate "From "
set count [regsub -all "From " $emltext ">From " emltext2]
# read in email
set emllist [split "$emltext2" "\n\r"]
puts "$eml ($count) $datetext --> $date"
# MBOX header
puts -nonewline $oid "From ???@??? $date\r"
# output each line
foreach i $emllist {
puts -nonewline $oid "$i\r"
}
#MBOX trailer
puts -nonewline $oid "\r\r"
}
close $oid