From 3fca4ebe361e06994fd5fd9a5b858980aa3a3465 Mon Sep 17 00:00:00 2001 From: Andreas Guldstrand Date: Wed, 31 Aug 2016 00:23:31 +0200 Subject: sboinstall: report full package name for something already installed. See #44. --- SBO-Lib/lib/SBO/Lib/Pkgs.pm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'SBO-Lib/lib') diff --git a/SBO-Lib/lib/SBO/Lib/Pkgs.pm b/SBO-Lib/lib/SBO/Lib/Pkgs.pm index 7918240..71941a5 100644 --- a/SBO-Lib/lib/SBO/Lib/Pkgs.pm +++ b/SBO-Lib/lib/SBO/Lib/Pkgs.pm @@ -138,14 +138,15 @@ sub get_installed_packages { # Valid types: STD, SBO my (@pkgs, %types); foreach my $pkg (glob("$pkg_db/*")) { - my ($name, $version, $build) = $pkg =~ m#/([^/]+)-([^-]+)-[^-]+-([^-]+)$# + $pkg =~ s!^\Q$pkg_db/\E!!; + my ($name, $version, $build) = $pkg =~ m#^([^/]+)-([^-]+)-[^-]+-([^-]+)$# or next; - push @pkgs, { name => $name, version => $version, build => $build }; + push @pkgs, { name => $name, version => $version, build => $build, pkg => $pkg }; $types{$name} = 'STD'; } # If we want all packages, let's just return them all - return [ map { +{ name => $_->{name}, version => $_->{version} } } @pkgs ] + return [ map { +{ name => $_->{name}, version => $_->{version}, pkg => $_->{pkg} } } @pkgs ] if $filter eq 'ALL'; # Otherwise, mark the SBO ones and filter @@ -156,7 +157,7 @@ sub get_installed_packages { foreach my $sbo (@sbos) { $types{$sbo} = 'SBO' if $locations{ $sbo =~ s/-compat32//gr }; } } - return [ map { +{ name => $_->{name}, version => $_->{version} } } + return [ map { +{ name => $_->{name}, version => $_->{version}, pkg => $_->{pkg} } } grep { $types{$_->{name}} eq $filter } @pkgs ]; } -- cgit v1.2.3