diff options
author | 2007-05-17 18:52:58 +0000 | |
---|---|---|
committer | 2007-05-17 18:52:58 +0000 | |
commit | 26bcda0799fecc36490cf4e34330de2856fbea83 (patch) | |
tree | 39599420daaa1bfcda2f42547f1a42bc610f3252 | |
parent | name each urlscheme (diff) | |
download | wireguard-openbsd-26bcda0799fecc36490cf4e34330de2856fbea83.tar.xz wireguard-openbsd-26bcda0799fecc36490cf4e34330de2856fbea83.zip |
new methods: repositories can create url. Rename PackageLocation->stringize
to url, since that's what it does. Use the new methods to shorten code.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackageLocation.pm | 8 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackageRepository.pm | 34 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm | 16 |
3 files changed, 46 insertions, 12 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm b/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm index aa6139c656f..ba757e836dd 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageLocation.pm,v 1.10 2007/05/16 07:18:55 espie Exp $ +# $OpenBSD: PackageLocation.pm,v 1.11 2007/05/17 18:52:58 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -32,7 +32,7 @@ sub new } my $self = { repository => $repository, name => $name, arch => $arch}; bless $self, $class; -# print STDERR "Built location ", $self->stringize, "\n"; +# print STDERR "Built location ", $self->url, "\n"; return $self; } @@ -44,11 +44,11 @@ sub set_arch $self->{arch} = $arch; } -sub stringize +sub url { my $self = shift; - return $self->{repository}->stringize($self->{name}); + return $self->{repository}->url($self->{name}); } sub openArchive diff --git a/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm b/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm index f4eec6f3895..ccdbe429bf3 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageRepository.pm,v 1.34 2007/05/17 18:17:20 espie Exp $ +# $OpenBSD: PackageRepository.pm,v 1.35 2007/05/17 18:52:58 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -203,6 +203,16 @@ sub cleanup # nothing to do } +sub relative_url +{ + my ($self, $name) = @_; + if (defined $name) { + return $self->{baseurl}.$name.".tgz"; + } else { + return $self->{baseurl}; + } +} + package OpenBSD::PackageRepository::Local; our @ISA=qw(OpenBSD::PackageRepository); @@ -228,7 +238,7 @@ sub open_pipe "-c", "-q", "-f", - $self->{baseurl}.$object->{name}.".tgz" + $self->relative_url($object->{name}) or die "Can't run gzip"; } } @@ -236,7 +246,7 @@ sub open_pipe sub may_exist { my ($self, $name) = @_; - return -r $self->{baseurl}.$name.".tgz"; + return -r $self->relative_url($name); } sub list @@ -262,6 +272,11 @@ sub urlscheme return 'pipe'; } +sub relative_url +{ + return ''; +} + sub may_exist { return 1; @@ -455,10 +470,17 @@ sub grab_object exec {$ftp} "ftp", "-o", - "-", $self->{baseurl}.$object->{name}.".tgz" + "-", $self->url($object->{name}) or die "can't run ftp"; } +sub url +{ + my ($self, $name) = @_; + + return $self->relative_url($name); +} + sub maxcount { return 1; @@ -591,7 +613,7 @@ sub list if (!defined $self->{list}) { my $error = OpenBSD::Temp::file(); $self->make_room; - my $fullname = $self->{baseurl}; + my $fullname = $self->url; my $l = $self->{list} = []; local $_; open(my $fh, '-|', "ftp -o - $fullname 2>$error") or return; @@ -625,7 +647,7 @@ sub list my $error = OpenBSD::Temp::file(); $self->make_room; - my $fullname = $self->{baseurl}; + my $fullname = $self->url; $self->{list} = $self->_list("echo 'nlist *.tgz'|ftp -o - $fullname 2>$error"); $self->parse_problems($error); } diff --git a/usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm b/usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm index cb9924ea895..1f4cd0b35b7 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Installed.pm,v 1.6 2007/05/17 18:17:20 espie Exp $ +# $OpenBSD: Installed.pm,v 1.7 2007/05/17 18:52:58 espie Exp $ # # Copyright (c) 2007 Marc Espie <espie@openbsd.org> # @@ -37,11 +37,17 @@ sub match return @l; } +sub url +{ + my ($self, $name) = @_; + return $self->urlscheme.':'.$self->relative_url($name); +} + package OpenBSD::PackageRepository::Installed; our @ISA = (qw(OpenBSD::PackageRepositoryBase)); -sub urlschem +sub urlscheme { return 'inst'; } @@ -57,6 +63,12 @@ sub new return $_[1] ? $s2 : $singleton; } +sub relative_url +{ + my ($self, $name) = @_; + return $name or ''; +} + sub find { my ($repository, $name, $arch, $srcpath) = @_; |