diff options
author | Francois Pons <fpons@mandriva.com> | 2001-07-05 13:32:16 +0000 |
---|---|---|
committer | Francois Pons <fpons@mandriva.com> | 2001-07-05 13:32:16 +0000 |
commit | 5e6e33a4661b5116e36524b2bcae8793622c1933 (patch) | |
tree | 296f66f9022799b3abd92fa3f720c3f716c2bbbd /rpmtools.pm | |
parent | 7ae2c69a2fef5f617f68c5f203e71fa4538de27a (diff) | |
download | rpmtools-5e6e33a4661b5116e36524b2bcae8793622c1933.tar rpmtools-5e6e33a4661b5116e36524b2bcae8793622c1933.tar.gz rpmtools-5e6e33a4661b5116e36524b2bcae8793622c1933.tar.bz2 rpmtools-5e6e33a4661b5116e36524b2bcae8793622c1933.tar.xz rpmtools-5e6e33a4661b5116e36524b2bcae8793622c1933.zip |
added compute_id method.
Diffstat (limited to 'rpmtools.pm')
-rw-r--r-- | rpmtools.pm | 19 |
1 files changed, 19 insertions, 0 deletions
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. |