CPANPLUS-Dist-Arch
view release on metacpan or search on metacpan
script/cpan2aur view on Meta::CPAN
# Params: $ua - LWP::UserAgent object
# (this gets a new cookie jar with a new session cookie)
# $username - Username to login AUR.
# $password - Password to login AUR.
# Returns: a new session ID
sub _new_login_sid
{
my ($ua, $username, $passwd) = @_;
# Get a fresh session ID cookie...
$ua->cookie_jar( HTTP::Cookies->new() );
my $resp = $ua->post( AUR_LOGIN_URI,
[ user => $username,
passwd => $passwd,
remember_me => 1, # probably not needed
] );
# Check for problems...
error( 'Bad username or password' )
if ( $resp->content =~ /$BAD_LOGIN_MSG/ );
error( "AUR login expected status code 302.
Got status: ", $resp->status_line )
if !( $resp->code == 302 && !$resp->is_success );
return _scan_aursid($ua);
}
# Params: $sid - Session ID to login the AUR with.
# Returns: A new HTTP::Cookies object with an AUR session ID cookie.
sub _mk_session_cookie
{
my ($sid) = @_;
my %cookies = ( COOKIE_NAME() => $sid,
AURLANG => 'en', );
my $cookie_obj = HTTP::Cookies->new();
for my $name ( keys %cookies ) {
$cookie_obj->set_cookie( q{}, $name, $cookies{$name},
q{/}, 'aur.archlinux.org' );
}
return $cookie_obj;
}
sub _scan_aursid
{
script/cpan2aur view on Meta::CPAN
error( $PKG_EXISTS_ERR ) if ( $resp->content =~ /$PKG_EXISTS_MSG/ );
return;
}
# Make sure the libwww modules we need are loaded, if not offer to install
# as a package.
sub _load_web_modules
{
_req_or_install( 'perl-libwww',
'LWP::UserAgent', 'HTTP::Cookies' );
_req_or_install( 'perl-lwp-protocol-https',
'LWP::Protocol::https');
}
sub _req
{
my $loaded = 1;
for my $mod ( @_ ) {
eval "require $mod; 1";
if ( $@ ) { $loaded = 0; last; }
( run in 0.526 second using v1.01-cache-2.11-cpan-e9199f4ba4c )