The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

my $usage = "usage: perl $0 <user> <into>";

my ($from, $into) = @ARGV;
die "\n$usage\n" unless $from && $into;

### after: use lib qw(@RT_LIB_PATH@);
use lib qw(/opt/rt3/local/lib /opt/rt3/lib);
use RT;
RT::LoadConfig();
RT::Init();

my $merge = RT::User->new( $RT::SystemUser );
$merge->Load( $from );
die "Couldn't load user using '$from'" unless $merge->id;

my $user = RT::User->new( $RT::SystemUser );
$user->Load( $into );
die "Couldn't load user using '$into'" unless $user->id;

print "Going to merge user #". $merge->id ." into user #". $user->id ."\n";
exit 0 unless prompt_yN("Are you sure you want to do that?");

my ($status, $msg) = $merge->MergeInto( $user );
die "Couldn't merge users: $msg" unless $status;

print "DONE.\n";
exit 0;

sub prompt_yN {
    my $msg = shift;
    print $msg ." [N]: ";
    my $a = <STDIN>;
    return 1 if $a =~ /^(y|yes)$/i;
    return 0;
}