summaryrefslogtreecommitdiff
path: root/scripts/license_matcher_modified.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/license_matcher_modified.pl')
-rw-r--r--scripts/license_matcher_modified.pl92
1 files changed, 92 insertions, 0 deletions
diff --git a/scripts/license_matcher_modified.pl b/scripts/license_matcher_modified.pl
new file mode 100644
index 0000000..53b1732
--- /dev/null
+++ b/scripts/license_matcher_modified.pl
@@ -0,0 +1,92 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Getopt::Std;
+use Set::Object;
+use Tie::IxHash;
+use Tie::Autotie 'Tie::IxHash';
+use Data::Dumper;
+
+my %opts =();
+my %licensedictionary=();
+my %numofslashdictionary=();
+
+tie %licensedictionary, 'Tie::IxHash';
+
+my $prefix="/big2/y-manabe/licensereration/fedora/srcrpm_sandbox/";
+
+getopts ("p:l:",\%opts);
+
+open (PFH,$opts{"p"});
+
+while (my $line=<PFH>){
+ $line =~ /(.*);(.*)/;
+ my $key = $1;
+ my $license = $2;
+ #if ($key =~ /\//){
+# $key =~ s/\//\\\//g;
+ # }
+ #print "$key\n";
+ if (defined $licensedictionary{substr($key,0,2)}{$key}){
+ push (@{$licensedictionary{substr($key,0,2)}{$key}},$license);
+# print join(',',@{$licensedictionary{$key}});
+ }else{
+ my @tmp=($license);
+ if (!defined $licensedictionary{substr($key,0,2)}){
+ #tie my %keylicensepairs,'Tie::IxHash';
+ #$licensedictionary{substr($key,0,2)}=\%keylicensepairs;
+ }
+ $licensedictionary{substr($key,0,2)}{$key}=\@tmp;
+ my $numofslash = ($key =~ tr /\//\//);
+ $numofslashdictionary{$key} = $numofslash;
+ }
+}
+
+close PFH;
+
+#print Dumper(\%licensedictionary);
+#return;
+
+#foreach my $key(keys %licensedictionary){
+# print $key.";";
+# print join(',',@{$licensedictionary{$key}});
+# print "\n";
+#}
+
+open (LFH,$opts{"l"});
+
+while(my $line=<LFH>){
+ #print $line;
+ $line =~ /^${prefix}(.*?);(.*?)$/;
+ my $filepath=$1;
+ my $slicense=$2;
+ my @slicenselist=split (/\,/,$slicense);
+ my $licenseset = Set::Object->new(@slicenselist);
+ #$licenseset= Set::Object->unique($licenseset);
+ @slicenselist= sort($licenseset->members);
+ my $uniqlicensenames = join (',',@slicenselist);
+ #print "$license\n";
+ foreach my $key(keys %{$licensedictionary{substr($filepath,0,2)}}){
+ my @tmpdirnames;
+ my @dirnames = split /\//,$filepath;
+ if ($#dirnames >= ${numofslashdictionary}{$key}){
+ @tmpdirnames=@dirnames[0..$numofslashdictionary{$key}];
+ }else{
+ next;
+ }
+# print "$filepath,$licensedictionary{substr($filepath,0,2)}{$key},$key\n";
+ #print "@{dirnames}[0..$numofslash]\n";
+ my $tmpfilepath;
+ $tmpfilepath = join('/',@tmpdirnames);
+ #print "$key\n";
+ if ($tmpfilepath eq $key){
+ print "${prefix}$filepath;$uniqlicensenames;";
+ print join(',',@{$licensedictionary{substr($key,0,2)}{$key}});
+ print "\n";
+ last;
+ }
+ }
+}
+
+close LFH;