/usr/local/CPAN/Pushmi/Pushmi/Command/Tryauth.pm


package Pushmi::Command::Tryauth;
use base 'Pushmi::Command::Mirror';

our ($USER, $PASS) = @_;

sub pushmi_auth {
    my ($cred, $realm, $default_username, $may_save, $pool) = @_;
    $cred->username($USER);
    $cred->password($PASS);
    $cred->may_save(0);
    return $SVN::_Core::SVN_NO_ERROR;
}

sub run {
    my ($self, $repospath, $user, $pass) = @_;
    ($USER, $PASS) = ($user, $pass);
    die "repospath required" unless $repospath;
    $self->canonpath($repospath);
    my $repos = SVN::Repos::open($repospath) or die "Can't open repository: $@";
    my $t = $self->root_svkpath($repos);
    my ($mirror) = $t->is_mirrored;
    $self->setup_auth;
    my $editor = eval { $mirror->get_commit_editor('', '*should not be committed*', sub {}) };
    if ($editor) {
	$editor->abort_edit;
	exit 0;
    }
    exit 1;
}

1;