Skip to content

Commit 0ff5fb9

Browse files
committed
Added utility for license header
1 parent 1639449 commit 0ff5fb9

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

util/add_header.pl

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/usr/bin/env perl
2+
3+
use strict;
4+
use warnings;
5+
use File::Find;
6+
use File::Basename;
7+
use File::Slurp;
8+
use Cwd qw(abs_path);
9+
use v5.12;
10+
11+
my $root = dirname(abs_path(__FILE__ . '/..'));
12+
13+
my @dir_to_search = (
14+
$root . '/src',
15+
$root . '/util',
16+
$root . '/tests'
17+
);
18+
19+
my $header = <<EOL;
20+
/**
21+
* Elasticsearch PHP client
22+
*
23+
* \@link https://github.com/elastic/elasticsearch-php/
24+
* \@copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co)
25+
* \@license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
26+
* \@license https://www.gnu.org/licenses/lgpl-2.1.html GNU Lesser General Public License, Version 2.1
27+
*
28+
* Licensed to Elasticsearch B.V under one or more agreements.
29+
* Elasticsearch B.V licenses this file to you under the Apache 2.0 License or
30+
* the GNU Lesser General Public License, Version 2.1, at your option.
31+
* See the LICENSE file in the project root for more information.
32+
*/
33+
EOL
34+
35+
my @suffix = ('.php');
36+
my %hash = map {$_ => 1} @suffix;
37+
38+
say "SEARCH for PHP files...";
39+
find(\&add_header, @dir_to_search);
40+
say "END";
41+
42+
sub add_header {
43+
my ($filename, $dirs, $suffix) = fileparse($File::Find::name, @suffix);
44+
45+
return if !$hash{$suffix};
46+
47+
my $file_content = read_file($File::Find::name);
48+
if (index($file_content, $header) == -1) {
49+
printf("\tAdding header to %s\n", $File::Find::name);
50+
51+
my @phpdoc_to_remove = (
52+
'author',
53+
'category',
54+
'package',
55+
'license',
56+
'link',
57+
);
58+
59+
# Remove previous @phpdocumentor tag
60+
foreach my $tag ( @phpdoc_to_remove ) {
61+
$file_content =~ s/\s\*\s\@$tag.*\n//g;
62+
}
63+
# Insert the $header at the top of the file
64+
$file_content =~ s/<\?php/<\?php\n$header/;
65+
66+
write_file($File::Find::name, $file_content);
67+
}
68+
}

0 commit comments

Comments
 (0)