#! /usr/bin/perl sub finddeps { $query=$_[0]; $line=`apt-cache show $query | grep ^Depends | head -1 | cut -c9-`; chomp $line; $line =~ s/\(.*?\)//g; $line =~ s/ //g; # print "$query depends on $line\n"; return $line; } sub checkdeps { @deps=@_; foreach $dep (@deps) { if (! $dependency_hell{$dep}) { $dependency_hell{$dep} = 1; @deplist=finddeps($dep); # print "new dependency: $dep\n"; checkdeps(split (",",finddeps($dep))); } } } $input=$ENV{QUERY_STRING} || $ARGV[0]; my %dependency_hell; $line=finddeps($input); my @deplist = split (",", $line); foreach $dep (@deplist) { # print "dependency: $dep\n"; $dependency_hell{$dep} = 1; checkdeps($dep); } if ($ENV{QUERY_STRING}) {print "Content-type: text/plain\n\n"}; foreach $key (keys %dependency_hell) { print "$key\n"; }