my $name = shift;
my $src = abs_path(shift);
- system("ln -sf $src ./feeds/$name");
+ system("rm -f ./feeds/$name; ln -s $src ./feeds/$name");
return 0;
}
sub get_feed($) {
my $feed = shift;
+ my $file = "./feeds/$feed.index";
clear_packages();
- parse_package_metadata("./feeds/$feed.index") or return;
+
+ -f $file or do {
+ print "Ignoring feed '$feed' - index missing\n";
+ return;
+ };
+ parse_package_metadata($file) or return;
return { %package };
}
# newly installed packages set the source package
$installed{$src} and return 0;
- # install all dependencies
- foreach my $dep (@{$pkg->{depends}}) {
- next if $dep =~ /@/;
- $dep =~ s/^\+//;
- install_package($feed, $dep) == 0 or $ret = 1;
- }
-
# check previously installed packages
$installed{$name} and return 0;
$installed{$src} = 1;
return 1;
};
+ # install all dependencies
+ foreach my $dep (@{$pkg->{depends}}, @{$pkg->{builddepends}}) {
+ next if $dep =~ /@/;
+ $dep =~ s/^\+//;
+ install_package($feed, $dep) == 0 or $ret = 1;
+ }
+
return $ret;
}