view support/general/pgped.tcl @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
line wrap: on
line source

if {$argc != 3} {
    puts stderr "usage: ... headers-file body-file text-flag"
    exit 1
}

set textflag [lindex $argv 2]

set hdrsfile [open [lindex $argv 0] w]

set mime ""
foreach header [SafeTcl_getheaders] {
    if {[set name [string tolower [set field [lindex $header 0]]]] \
	    == "mime-version"} {
	continue
    }
    if {[string first content- $name] == 0} {
	append mime "$field: [lindex $header 1]\n"
	continue
    }

    puts $hdrsfile "$field: [lindex $header 1]"
}
puts $hdrsfile "MIME-Version: 1.0"
if {$mime != ""} {
    puts $hdrsfile "Content-Type: application/pgp; format=mime\n"
} elseif {$textflag == "T"} {
    puts $hdrsfile "Content-Type: text/pgp\n"
} else {
    puts $hdrsfile "Content-Type: application/pgp\n"
}

close $hdrsfile


set bodyfile [open [lindex $argv 1] w]

if {$mime != ""} {
    puts $bodyfile "$mime"
}
puts -nonewline $bodyfile [SafeTcl_getbodyprop 1 value]

close $bodyfile


if {[SafeTcl_getheader Resent-To] != ""} {
    set prefix Resent-
} else {
    set prefix ""
}

set addrs ""
foreach header [list Reply-To From Sender To cc Bcc Dcc From] {
    foreach addr [SafeTcl_getaddrs [ SafeTcl_getheader $prefix$header]] {
	catch { if {[string first @ $addr] < 0} {
		    set addr [exec ali $addr]
		}
		set addr [SafeTcl_getaddrprop $addr address]
		if {[lsearch -exact $addrs $addr] < 0} {
		    lappend addrs $addr
		}
	      }
    }
}

if {[set from [SafeTcl_getheader From]] == ""} {
    set addr [id effective user]
} else {
    set addr [lindex [SafeTcl_getaddrs $from] 0]
}
catch {
    if {[string first @ $addr] < 0} {
	set addr [exec ali $addr]
    }
    set addr [SafeTcl_getaddrprop $addr address]
}
if {[lsearch -exact $addrs $addr] < 0} {
    lappend addrs $addr
}

puts stdout "$addrs -u $addr"