s4
annotate mpsplit.pl @ 507:145fb3cca3fb
User email values are in user_m, not user_s.
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Wed, 06 Mar 2019 14:15:53 +0900 |
parents | 3565d93c2fb1 |
children | 347ea2bca687 |
rev | line source |
---|---|
yuuji@11 | 1 #!/usr/bin/env perl |
yuuji@11 | 2 $sep = "--" . $ARGV[0]; |
yuuji@11 | 3 $dir = ($ARGV[1] || "tmp"); |
yuuji@12 | 4 if ($dir =~ /^([^<>\;\&]*)$/) { |
yuuji@12 | 5 $dir = $1; |
yuuji@12 | 6 } |
yuuji@11 | 7 |
yuuji@11 | 8 #print "sep=".$sep, "dir=$dir\n"; |
yuuji@11 | 9 #binmode STDIN; |
yuuji@11 | 10 $/ = undef; |
yuuji@11 | 11 $stream = (<STDIN>); |
yuuji@11 | 12 $n=0; |
yuuji@11 | 13 @slices = split($sep, $stream); |
yuuji@11 | 14 shift(@slices); |
yuuji@11 | 15 pop(@slices); |
yuuji@11 | 16 foreach $item (@slices) { |
yuuji@11 | 17 $item =~ s/^\n//; |
yuuji@11 | 18 ($header = $item) =~ s/\r\n\r\n.*//s; |
yuuji@11 | 19 ($body = $item) =~ s/.*?\r\n\r\n//s; |
yuuji@11 | 20 $body =~ s/\r\n$//; |
yuuji@11 | 21 #print "h=[$header]\n"; |
yuuji@11 | 22 #print "b=[$body]\n"; |
yuuji@11 | 23 unless ($header =~ /\bname=([\"']?)(.*?)\1/) { |
yuuji@11 | 24 next; |
yuuji@11 | 25 } |
yuuji@11 | 26 $name = $2; |
yuuji@11 | 27 #print "name=$name\n"; |
yuuji@11 | 28 if ($header =~ /filename=(['\"]?)(.*?)\1/ && $2 gt "") { |
yuuji@12 | 29 $fn=$2; |
yuuji@12 | 30 if ($fn =~ /^([^\/]*)$/) { |
yuuji@12 | 31 $fn = $1; |
yuuji@12 | 32 } |
yuuji@11 | 33 open(OUT, ">$dir/$fn"); |
yuuji@11 | 34 print OUT $body; |
yuuji@11 | 35 close(OUT); |
yuuji@11 | 36 printf("%s:filename=%s\n", $name, unpack("H*", $fn)); |
yuuji@11 | 37 } else { |
yuuji@11 | 38 printf("%s=%s\n", $name, unpack("H*", $body)); |
yuuji@11 | 39 } |
yuuji@11 | 40 } |