From: short <> Date: Fri, 11 Oct 2002 22:46:13 +0000 (+0000) Subject: Production stage of "n9k2mutt-v3" called now "contacts-n9k2mutt" X-Git-Tag: bp_lace~87 X-Git-Url: http://git.jankratochvil.net/?p=PerlMail.git;a=commitdiff_plain;h=c2ccb5629c0279276229ad9cfd4082fd452bb218;ds=sidebyside Production stage of "n9k2mutt-v3" called now "contacts-n9k2mutt" --- diff --git a/Makefile.PL b/Makefile.PL index b6e1909..67f3d69 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -41,5 +41,5 @@ WriteMakefile( "URI::Escape"=>0, "User::Utmp"=>0, }, - "EXE_FILES"=>["lacemail-accept","lacemail-submit","lacemail-sendmail"], + "EXE_FILES"=>["lacemail-accept","lacemail-submit","lacemail-sendmail","contacts-n9k2mutt"], ); diff --git a/contacts-n9k2mutt b/contacts-n9k2mutt new file mode 100755 index 0000000..d964139 --- /dev/null +++ b/contacts-n9k2mutt @@ -0,0 +1,56 @@ +#! /usr/bin/perl +# +# $Id$ + +use vars qw($VERSION); +$VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +use strict; +use warnings; + +require Getopt::Long; +require PrecislovaniLace::Contacts; +require Mail::Address; + + +Getopt::Long::Configure( + "no_ignorecase", + "bundling", + ); +die if !Getopt::Long::GetOptions( + ); + +undef $/; +while (<>) { + my @data=map({ + my @record=@$_; + my %record; + map({ + my %item=%$_; + $record{$item{"FIELD"}}=$item{"FIELD-DATA"}; + ($item{"FIELD"} ne "Mail" || !$item{"FIELD-DATA"} ? () : ({ + "name"=>$record{"Name"}, + "mail"=>$item{"FIELD-DATA"}, + "attr"=>$item{"FIELD-NAME"}, + "iscompany"=>($record{"Name"} && $record{"Company"} && $record{"Name"} eq $record{"Company"}), + })); + } @record); + } PrecislovaniLace::Contacts->import($_)); + my @nicked=map({ + my $data=$_; + my($name,$mail,$attr,$iscompany)=map(($data->{$_}),qw(name mail attr iscompany)); + $name=~s/,.*$//s; + my @nicks=(); + push @nicks,$1 while $name=~s/"([^"]*)"//s; + $name=~s/\s*$//s; + $name=~s/^(\w+)\s+(\w+)$/$2 $1/s if !$iscompany; + (my $nick=$name.(!$attr ? "" : ".$attr"))=~s/\s+/./gs; + push @nicks,$nick; + map({ + "nick"=>$_, + "obj"=>Mail::Address->new($name,$mail), + },@nicks); + } @data); + for (@nicked) { + print "alias ".$_->{"nick"}." ".$_->{"obj"}->format()."\n"; + } + }