Update for the recent version.
[PerlMail.git] / contacts-n9k2mutt
index 81aa704..6136f45 100755 (executable)
@@ -17,6 +17,9 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+# Name: Lastname Firstname "nick1" "nick2", dropped text
+# Company: same as Name to indicate company record
+
 
 use vars qw($VERSION);
 $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
@@ -24,7 +27,6 @@ use strict;
 use warnings;
 
 require Getopt::Long;
-require PerlMail::Contacts::9000;
 require Mail::Address;
 
 
@@ -32,9 +34,16 @@ Getopt::Long::Configure(
                "no_ignorecase",
                "bundling",
                );
+my $opt_9000;
 die if !Getopt::Long::GetOptions(
+               "9000"=>\$opt_9000,
                );
 
+my $type="9210";
+$type="9000" if $opt_9000;
+my $class="PerlMail::Contacts::$type";
+eval "require $class;1;" or die "Cannot load loader $class: $!";
+
 undef $/;
 while (<>) {
        my @data=map({
@@ -50,7 +59,7 @@ while (<>) {
                                                        "iscompany"=>($record{"Name"} && $record{"Company"} && $record{"Name"} eq $record{"Company"}),
                                                        }));
                                        } @record);
-                       } PerlMail::Contacts::9000->in($_));
+                       } $class->in($_));
        my @nicked=map({
                        my $data=$_;
                        my($name,$mail,$attr,$iscompany)=map(($data->{$_}),qw(name mail attr iscompany));
@@ -73,7 +82,11 @@ while (<>) {
                                        "obj"=>Mail::Address->new(($name_force || $name),$mail),
                                        },@nicks);
                        } @data);
+       my %dupe;
        for (@nicked) {
-               print "alias ".$_->{"nick"}." ".$_->{"obj"}->format()."\n";
+               my $nick=$_->{"nick"};
+               my $dupe=$dupe{$nick}++;
+               $nick.=".$dupe" if $dupe;
+               print "alias $nick ".$_->{"obj"}->format()."\n";
                }
        }