#!/usr/bin/perl $OCCDir="$ARGV[0]/ros"; $OCCSrcDir="$OCCDir/src"; $OCCIncDir="$OCCDir/inc"; $OCCAdmDir="$OCCDir/adm"; $OCCPlatform="Linux"; $OCCLnkDir="$OCCAdmDir/$OCCPlatform"; $OCCBinDir="$OCCDir/$OCCPlatform/bin"; $OCCLibDir="$OCCDir/$OCCPlatform/lib"; # Put all source directories in a hash my %directories; my @toolkits; my @packages; opendir (DIR, $OCCSrcDir) or die "Cannot open $OCCSrcDir\n"; while ($dir = readdir(DIR)) { next if ($dir =~ /^\./); next unless (-d "$OCCSrcDir/$dir"); my $pkfile = "$OCCSrcDir/$dir/PACKAGES"; if (-f $pkfile) { push @toolkits, $dir; $directories{$dir} = 1; open (FILE, "< $pkfile") or die "Cannot open $pkfile\n"; while ($pkg = ) { next unless ($pkg =~ /^\s*([^\s]+)\s*$/); $pkg = $1; die "Invalid Package '$pkg' in '$pkfile'" unless (-d "$OCCSrcDir/$pkg"); push @packages, $pkg; $directories{$pkg} = 1; } } else { $directories{$dir} = 0 unless (exists $directories{$dir}); } } # Get list of unreferenced directories my @otherdir; foreach $dir (sort keys %directories) { push @otherdir, $dir if ($directories{$dir} == 0); } print "Toolkits: \n"; print " ", join( "\n ", @toolkits ), "\n"; print "\n"; print "Other Source Directories: \n"; print " ", join( "\n ", @otherdir ), "\n";