#!/bin/sh # # apt-rdepends-ultimates - apt-rdepends results with no rdepends of their own # # $Id$ apt-rdepends "$@" | perl -le ' use warnings; use strict; my (%yielded, %yielded2dep, $pkg); while (<>) { if (/^\S+/) { $pkg = $&; ++$yielded{$pkg} } elsif (/^\s*[A-Z][\w\s]+:\s*(\S+)/) { ++$yielded2dep{$pkg}->{$1}; #warn "$pkg has yielded dep $1\n"; # we want to yield $pkg except when any of its $1s is in %yielded } } sub has_a_yielded_dep { my ($thisdep) = @_; my $res = grep { $yielded{$_} } keys %{$yielded2dep{$thisdep}}; my $yesno = $res ? "a" : "no"; #warn "$thisdep has $yesno yielded dep\n"; $res } print for sort grep { !has_a_yielded_dep($_) } keys %yielded '