|
@@ -6,6 +6,7 @@
|
|
|
# Licensed under the terms of the GNU GPL License version 2
|
|
|
|
|
|
use strict;
|
|
|
+use POSIX;
|
|
|
|
|
|
my $P = $0;
|
|
|
$P =~ s@.*/@@g;
|
|
@@ -399,37 +400,52 @@ sub seed_camelcase_includes {
|
|
|
return if ($camelcase_seeded);
|
|
|
|
|
|
my $files;
|
|
|
- my $camelcase_git_file = "";
|
|
|
+ my $camelcase_cache = "";
|
|
|
+ my @include_files = ();
|
|
|
+
|
|
|
+ $camelcase_seeded = 1;
|
|
|
|
|
|
if (-d ".git") {
|
|
|
my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
|
|
|
chomp $git_last_include_commit;
|
|
|
- $camelcase_git_file = ".checkpatch-camelcase.$git_last_include_commit";
|
|
|
- if (-f $camelcase_git_file) {
|
|
|
- open(my $camelcase_file, '<', "$camelcase_git_file")
|
|
|
- or warn "$P: Can't read '$camelcase_git_file' $!\n";
|
|
|
- while (<$camelcase_file>) {
|
|
|
- chomp;
|
|
|
- $camelcase{$_} = 1;
|
|
|
- }
|
|
|
- close($camelcase_file);
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
- $files = `git ls-files include`;
|
|
|
+ $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
|
|
|
} else {
|
|
|
+ my $last_mod_date = 0;
|
|
|
$files = `find $root/include -name "*.h"`;
|
|
|
+ @include_files = split('\n', $files);
|
|
|
+ foreach my $file (@include_files) {
|
|
|
+ my $date = POSIX::strftime("%Y%m%d%H%M",
|
|
|
+ localtime((stat $file)[9]));
|
|
|
+ $last_mod_date = $date if ($last_mod_date < $date);
|
|
|
+ }
|
|
|
+ $camelcase_cache = ".checkpatch-camelcase.date.$last_mod_date";
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($camelcase_cache ne "" && -f $camelcase_cache) {
|
|
|
+ open(my $camelcase_file, '<', "$camelcase_cache")
|
|
|
+ or warn "$P: Can't read '$camelcase_cache' $!\n";
|
|
|
+ while (<$camelcase_file>) {
|
|
|
+ chomp;
|
|
|
+ $camelcase{$_} = 1;
|
|
|
+ }
|
|
|
+ close($camelcase_file);
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (-d ".git") {
|
|
|
+ $files = `git ls-files "include/*.h"`;
|
|
|
+ @include_files = split('\n', $files);
|
|
|
}
|
|
|
- my @include_files = split('\n', $files);
|
|
|
+
|
|
|
foreach my $file (@include_files) {
|
|
|
seed_camelcase_file($file);
|
|
|
}
|
|
|
- $camelcase_seeded = 1;
|
|
|
|
|
|
- if ($camelcase_git_file ne "") {
|
|
|
+ if ($camelcase_cache ne "") {
|
|
|
unlink glob ".checkpatch-camelcase.*";
|
|
|
- open(my $camelcase_file, '>', "$camelcase_git_file")
|
|
|
- or warn "$P: Can't write '$camelcase_git_file' $!\n";
|
|
|
+ open(my $camelcase_file, '>', "$camelcase_cache")
|
|
|
+ or warn "$P: Can't write '$camelcase_cache' $!\n";
|
|
|
foreach (sort { lc($a) cmp lc($b) } keys(%camelcase)) {
|
|
|
print $camelcase_file ("$_\n");
|
|
|
}
|