#!/usr/pkg/bin/perl # simple pkgsrc search script using pkgsrc.netbsd.se # quickly written by iMil use LWP::UserAgent; use HTTP::Request::Common; sub usage { die "usage: $0 \n"; } if ($#ARGV < 0) { usage(); } my $pkgname=$ARGV[0]; my $baseurl='http://pkgsrc.netbsd.se/'; sub pkgparse { my @sublist=split(/\n/, $_[0]); foreach(@sublist) { $_=~s/<[^>]*?>//gs; # this one is for the remaining href $_=~s/<.+?=\"//gs; if (/.*(Path:)(.+)(Version:)(.+)(Last db update:)(.+)(Webpage)(.+).*/i) { print "$1 $2\n$3 $4\n$5 $6\n$7 $8\n\n"; } } } my $ua = LWP::UserAgent->new(agent => 'pkgse 0.1'); my %tags = (); $tags{'so'} = $pkgname; my $resp = $ua->request( POST "$baseurl/?cat=search" , Content_Type => 'form-data', Content => [ %tags ] ); print $resp->error_as_HTML unless $resp->is_success; my $result=$resp->content(); my @list=split(/get("$baseurl/?cat=casearch&$1"); print $resp->error_as_HTML unless $resp->is_success; pkgparse($resp->content); } }