summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2007-05-17 18:52:58 +0000
committerespie <espie@openbsd.org>2007-05-17 18:52:58 +0000
commit26bcda0799fecc36490cf4e34330de2856fbea83 (patch)
tree39599420daaa1bfcda2f42547f1a42bc610f3252
parentname each urlscheme (diff)
downloadwireguard-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.pm8
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageRepository.pm34
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageRepository/Installed.pm16
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) = @_;