6 use AUR
::Depends
qw(prune);
7 use AUR
::Json
qw(parse_json_aur);
8 my $argv0 = "sync--filter";
10 # TODO: depends: adjust pkgname for lib32
19 'i|ignore=s' => $opt_ignore,
20 'f|ignore-file=s' => \
$opt_ignore_file,
21 'p|path=s' => \
$opt_json
24 if (not length $opt_json) {
25 say STDERR
"$argv0: json path required";
28 @
{$opt_ignore} = map { split(',', $_) } @
{$opt_ignore};
30 # Concatenate ignore targets from file
31 if (length($opt_ignore_file)) {
32 open(my $fh_ignore, '<', $opt_ignore_file) or die $!;
36 push(@
{$opt_ignore}, $_) if length($_);
41 # Read aur-depends output
43 open(my $fh, '<', $opt_json) or die $!;
47 push(@results, parse_json_aur
($_));
53 for my $pkg (@results) {
54 $dag{$pkg->{'Name'}} = $pkg->{'RequiredBy'};
55 $map{$pkg->{'Name'}} = $pkg->{'PackageBase'};
58 # Prune ignored targets
59 my $removals = prune
(\
%dag, $opt_ignore);
61 if (defined $ENV{'AUR_DEBUG'}) {
62 say STDERR
"$argv0: targets removed: " . join(" ", @
{$removals});
65 # Print remaining dependency pairs as pkgbase
66 for my $dep (keys %dag) { # == keys %map
67 for my $name (keys %{$dag{$dep}}) {
68 say $map{$dep} . "\t" . $map{$name} if defined $map{$name};