From 8bf87ff0e6f51524a4ca44fe5b34eb426142cb7f Mon Sep 17 00:00:00 2001 From: Marc Espie Date: Sat, 9 Jan 2010 10:45:33 +0000 Subject: tweak path parsing to handle inst:pkgname and such as well... --- usr.sbin/pkg_add/OpenBSD/PackageLocator.pm | 12 +++++++----- usr.sbin/pkg_add/OpenBSD/Update.pm | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'usr.sbin/pkg_add/OpenBSD') diff --git a/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm b/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm index 0c9b3e2b850..d2ab5feaec7 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageLocator.pm,v 1.78 2010/01/09 09:45:40 espie Exp $ +# $OpenBSD: PackageLocator.pm,v 1.79 2010/01/09 10:45:32 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie # @@ -45,11 +45,13 @@ if (defined $ENV{PKG_PATH}) { sub path_parse { - use File::Basename; use OpenBSD::Paths; my $pkg_db = $ENV{"PKG_DBDIR"} || OpenBSD::Paths->pkgdb; - my ($pkgname, $path) = fileparse(shift); + my ($pkgname, $path) = (shift, './'); + if ($pkgname =~ m/^(.*[\/\:])(.*)/) { + ($pkgname, $path) = ($2, $1); + } my $repo; if ($path eq $pkg_db.'/') { @@ -69,7 +71,7 @@ sub find return $packages{$_}; } my $package; - if (m/\//o) { + if (m/[\/\:]/o) { my ($repository, undef, $pkgname) = path_parse($_); $package = $repository->find($pkgname, $arch); if (defined $package) { @@ -87,7 +89,7 @@ sub grabPlist my ($class, $_, $arch, $code) = @_; my $plist; - if (m/\//o) { + if (m/[\/\:]/o) { my ($repository, undef, $pkgname) = path_parse($_); $plist = $repository->grabPlist($pkgname, $arch, $code); if (defined $plist) { diff --git a/usr.sbin/pkg_add/OpenBSD/Update.pm b/usr.sbin/pkg_add/OpenBSD/Update.pm index 95001f90b7c..b9bd790c438 100644 --- a/usr.sbin/pkg_add/OpenBSD/Update.pm +++ b/usr.sbin/pkg_add/OpenBSD/Update.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Update.pm,v 1.127 2010/01/02 12:52:18 espie Exp $ +# $OpenBSD: Update.pm,v 1.128 2010/01/09 10:45:32 espie Exp $ # # Copyright (c) 2004-2010 Marc Espie # @@ -275,7 +275,7 @@ sub process_hint2 my ($self, $set, $hint, $state) = @_; my $pkgname = $hint->pkgname; if (OpenBSD::PackageName::is_stem($pkgname)) { - if ($pkgname =~ m/\//o) { + if ($pkgname =~ m/[\/\:]/o) { require OpenBSD::PackageLocator; my $repo; ($repo, undef, $pkgname) = OpenBSD::PackageLocator::path_parse($pkgname); -- cgit v1.2.3