| OLD | NEW |
| 1 #!/usr/bin/perl -w | 1 #!/usr/bin/perl -w |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 # Use: find_copyrights.pl <start-from> [exclude-dir ...] | 6 # Use: echo filename1.cc ... | find_copyrights.pl |
| 7 # or: find_copyrights.pl list_file |
| 8 # or: find_files.pl ... | find_copyrights.pl |
| 7 | 9 |
| 8 use strict; | 10 use strict; |
| 9 use warnings; | 11 use warnings; |
| 10 use File::Basename; | 12 use File::Basename; |
| 11 | 13 |
| 12 sub check_is_generated_file($); | 14 sub check_is_generated_file($); |
| 13 sub start_copyright_parsing(); | 15 sub start_copyright_parsing(); |
| 14 | 16 |
| 15 my $progname = basename($0); | 17 my $progname = basename($0); |
| 16 | 18 |
| 17 my $root_dir = shift @ARGV; | 19 my $generated_file_scan_boundary = 25; |
| 18 my @find_args = (); | 20 while (<>) { |
| 19 while (@ARGV) { | |
| 20 my $path = shift @ARGV; | |
| 21 push @find_args, qw'-not ( -path', "*/$path/*", qw'-prune )' | |
| 22 } | |
| 23 push @find_args, qw(-follow -type f -print); | |
| 24 | |
| 25 open FIND, '-|', 'find', $root_dir, @find_args | |
| 26 or die "$progname: Couldn't exec find: $!\n"; | |
| 27 my $check_regex = '\.(asm|c(c|pp|xx)?|h(h|pp|xx)?|p(l|m)|xs|sh|php|py(|x)' . | |
| 28 '|rb|idl|java|el|sc(i|e)|cs|pas|inc|js|pac|html|dtd|xsl|mod|mm?' . | |
| 29 '|tex|mli?)$'; | |
| 30 my @files = (); | |
| 31 while (<FIND>) { | |
| 32 chomp; | 21 chomp; |
| 33 push @files, $_ unless (-z $_ || !m%$check_regex%); | 22 my $file = $_; |
| 34 } | |
| 35 close FIND; | |
| 36 | |
| 37 my $generated_file_scan_boundary = 25; | |
| 38 while (@files) { | |
| 39 my $file = shift @files; | |
| 40 my $file_header = ''; | 23 my $file_header = ''; |
| 41 my %copyrights; | 24 my %copyrights; |
| 42 open (F, "<$file") or die "$progname: Unable to access $file\n"; | 25 open (F, "<$file") or die "$progname: Unable to access $file\n"; |
| 43 my $parse_copyright = start_copyright_parsing(); | 26 my $parse_copyright = start_copyright_parsing(); |
| 44 while (<F>) { | 27 while (<F>) { |
| 45 $file_header .= $_ unless $. > $generated_file_scan_boundary; | 28 $file_header .= $_ unless $. > $generated_file_scan_boundary; |
| 46 my $copyright_match = $parse_copyright->($_, $.); | 29 my $copyright_match = $parse_copyright->($_, $.); |
| 47 if ($copyright_match) { | 30 if ($copyright_match) { |
| 48 $copyrights{lc("$copyright_match")} = "$copyright_match"; | 31 $copyrights{lc("$copyright_match")} = "$copyright_match"; |
| 49 } | 32 } |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 $match =~ s/^\s+//; | 137 $match =~ s/^\s+//; |
| 155 $match =~ s/\s{2,}/ /g; | 138 $match =~ s/\s{2,}/ /g; |
| 156 $match =~ s/\\@/@/g; | 139 $match =~ s/\\@/@/g; |
| 157 $copyright = $match; | 140 $copyright = $match; |
| 158 } | 141 } |
| 159 } | 142 } |
| 160 | 143 |
| 161 return $copyright; | 144 return $copyright; |
| 162 } | 145 } |
| 163 } | 146 } |
| OLD | NEW |