+
+ if (! -d "$target") {
+ system("mkdir", "-p", "$target/");
+ }
+
+ if (! open TMPDLS, "find $mirror -follow -name $filename 2>/dev/null |") {
+ print("Failed to search for $filename in $mirror\n");
+ return;
+ }
+
+ my $link;
+
+ while (defined(my $line = readline TMPDLS)) {
+ chomp ($link = $line);
+ if ($. > 1) {
+ print("$. or more instances of $filename in $mirror found . Only one instance allowed.\n");
+ return;
+ }
+ }
+
+ close TMPDLS;
+
+ if (! $link) {
+ print("No instances of $filename found in $mirror.\n");
+ return;
+ }
+
+ print("Copying $filename from $link\n");
+ copy($link, "$target/$filename.dl");
+
+ if (system("$md5cmd '$target/$filename.dl' > '$target/$filename.md5sum'")) {
+ print("Failed to generate md5 sum for $filename\n");
+ return;