From 5e6e33a4661b5116e36524b2bcae8793622c1933 Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Thu, 5 Jul 2001 13:32:16 +0000 Subject: added compute_id method. --- rpmtools.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'rpmtools.pm') diff --git a/rpmtools.pm b/rpmtools.pm index eb9aa14..4cd3f0e 100644 --- a/rpmtools.pm +++ b/rpmtools.pm @@ -191,6 +191,25 @@ sub read_rpms { map { rpmtools::_parse_($_, $params->{flags}, $params->{info}, $params->{provides}) } @rpms; } +#- allocate id for newly entered value. +#- this is no more necessary to compute_depslist on them (and impossible) +sub compute_id { + my ($params) = @_; + + #- avoid recomputing already present infos, take care not to modify + #- existing entries, as the array here is used instead of values of infos. + my @info = grep { ! exists $_->{id} } values %{$params->{info}}; + + #- give an id to each packages, start from number of package already + #- registered in depslist. + my $global_id = scalar @{$params->{depslist}}; + foreach (sort { package_name_compare($a->{name}, $b->{name}) } @info) { + $_->{id} = $global_id++; + push @{$params->{depslist}}, $_; + } + 1; +} + #- compute dependencies, result in stored in info values of params. #- operations are incremental, it is possible to read just one hdlist, compute #- dependencies and read another hdlist, and again. -- cgit v1.2.1