use for_list
This commit is contained in:
parent
38a005d446
commit
f05f4e3b87
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# $OpenBSD: out-of-date,v 1.19 2010/06/17 10:30:39 espie Exp $
|
||||
# $OpenBSD: out-of-date,v 1.20 2010/06/18 09:08:57 espie Exp $
|
||||
#
|
||||
# Copyright (c) 2005 Bernd Ahlers <bernd@openbsd.org>
|
||||
#
|
||||
@ -28,24 +28,22 @@ use OpenBSD::AddCreateDelete;
|
||||
|
||||
our $opt_q;
|
||||
my $state = OpenBSD::AddCreateDelete::State->new("out-of-date");
|
||||
OpenBSD::AddCreateDelete->handle_options('q', $state, "[-q]");
|
||||
OpenBSD::AddCreateDelete->handle_options('q', $state, "[-mvxq]");
|
||||
|
||||
sub collect_installed
|
||||
{
|
||||
my $pkg = {};
|
||||
|
||||
$state->progress->set_header("Collecting installed packages");
|
||||
my @l = installed_packages(1);
|
||||
my $i = 0;
|
||||
for my $name (@l) {
|
||||
$state->progress->show(++$i, scalar(@l));
|
||||
$state->progress->for_list("Collecting installed packages",
|
||||
[installed_packages(1)], sub {
|
||||
my $name = shift;
|
||||
my ($stem, $version) = OpenBSD::PackageName::splitname($name);
|
||||
my $plist = OpenBSD::PackingList->from_installation($name,
|
||||
\&OpenBSD::PackingList::UpdateInfoOnly);
|
||||
if (!defined $plist or !defined $plist->{extrainfo}->{subdir}) {
|
||||
$state->errsay("Package #1has no valid packing-list",
|
||||
$name);
|
||||
next;
|
||||
return;
|
||||
}
|
||||
|
||||
my $subdir = $plist->{extrainfo}->{subdir};
|
||||
@ -61,7 +59,7 @@ sub collect_installed
|
||||
if (defined $plist->{'always-update'}) {
|
||||
$pkg->{$subdir}->{signature} = 'always-update';
|
||||
}
|
||||
}
|
||||
});
|
||||
return $pkg;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user