Production stage of "n9k2mutt-v3" called now "contacts-n9k2mutt"
authorshort <>
Fri, 11 Oct 2002 22:46:13 +0000 (22:46 +0000)
committershort <>
Fri, 11 Oct 2002 22:46:13 +0000 (22:46 +0000)
Makefile.PL
contacts-n9k2mutt [new file with mode: 0755]

index b6e1909..67f3d69 100644 (file)
@@ -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 (executable)
index 0000000..d964139
--- /dev/null
@@ -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";
+               }
+       }