uh_parser/releaseables.pm
changeset 215 a403724f631c
parent 177 6d3c3db11e72
child 223 604012c39141
--- a/uh_parser/releaseables.pm	Wed Mar 24 12:10:26 2010 +0000
+++ b/uh_parser/releaseables.pm	Wed Mar 24 15:37:22 2010 +0000
@@ -228,26 +228,61 @@
 			my $layer = $1;
 			my $package = $2;
 			
-			mkdir("$::basedir/releaseables/$layer");
-			mkdir("$::basedir/releaseables/$layer/$package");
+			mkdir("$::releaseablesdir/$layer");
+			mkdir("$::releaseablesdir/$layer/$package");
 			
-			my $filename = "$::basedir/releaseables/$layer/$package/info.tsv";
+			my $filename = "$::releaseablesdir/$layer/$package/info.tsv";
+			my $filenamemissing = "$::raptorbitsdir/$layer\_$package\_missing.txt" if ($::missing);
 			
 			print "Writing info file $filename\n" if (!-f$filename);
 			open(FILE, ">>$filename");
+			open(MISSING, ">>$filenamemissing");
 			
 			for my $filetype (keys %{$whatlog_info->{$bldinf}->{$config}})
 			{
 				for (sort(@{$whatlog_info->{$bldinf}->{$config}->{$filetype}}))
 				{
 					print FILE "$_\t$filetype\t$config\n";
+					my $file = $_;
+					
+					if($::missing && !-f $file)
+					{
+					   print MISSING $file."\n";
+                    }
 				}
 			}
+			close(FILE);						
+			close(MISSING) if ($::missing);
 			
-			close(FILE);
 		}
 	}
 }
+sub remove_missing_duplicates
+{
+	opendir(DIR, $::raptorbitsdir);
+    my @files = grep((-f "$::raptorbitsdir/$_" && $_ !~ /^\.\.?$/ && $_ =~ /_missing\.txt$/), readdir(DIR));
+    close(DIR);
+
+	for my $file (@files)
+	{
+		open(FILE, "+<$::raptorbitsdir/$file");	
+		print "working on $file\n";	
+	
+		# Read it
+		my @content = <FILE>;
+
+		# Sort it, and grep to remove duplicates
+		my $previous = "\n\n";
+		@content = grep {$_ ne $previous && ($previous = $_, 1) } sort @content;
+
+		# Write it
+		seek(FILE, 0, 0);
+		print FILE @content;
+		truncate(FILE,tell(FILE));
+	
+		close(FILE);
+	}
+}
 
 sub normalize_filepath
 {