- add sources.
[platform/framework/web/crosswalk.git] / src / third_party / lcov / bin / updateversion.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 sub update_man_page($);
6 sub update_bin_tool($);
7 sub update_txt_file($);
8 sub update_spec_file($);
9 sub get_file_info($);
10
11 our $directory = $ARGV[0];
12 our $version = $ARGV[1];
13 our $release = $ARGV[2];
14
15 our @man_pages = ("man/gendesc.1",  "man/genhtml.1",  "man/geninfo.1",
16                   "man/genpng.1", "man/lcov.1", "man/lcovrc.5");
17 our @bin_tools = ("bin/gendesc", "bin/genhtml", "bin/geninfo",
18                   "bin/genpng", "bin/lcov");
19 our @txt_files = ("README");
20 our @spec_files = ("rpm/lcov.spec");
21
22 if (!defined($directory) || !defined($version) || !defined($release)) {
23         die("Usage: $0 <directory> <version string> <release string>\n");
24 }
25
26 foreach (@man_pages) {
27         print("Updating man page $_\n");
28         update_man_page($directory."/".$_);
29 }
30 foreach (@bin_tools) {
31         print("Updating bin tool $_\n");
32         update_bin_tool($directory."/".$_);
33 }
34 foreach (@txt_files) {
35         print("Updating text file $_\n");
36         update_txt_file($directory."/".$_);
37 }
38 foreach (@spec_files) {
39         print("Updating spec file $_\n");
40         update_spec_file($directory."/".$_);
41 }
42 print("Done.\n");
43
44 sub get_file_info($)
45 {
46         my ($filename) = @_;
47         my ($sec, $min, $hour, $year, $month, $day);
48         my @stat;
49
50         @stat = stat($filename);
51         ($sec, $min, $hour, $day, $month, $year) = localtime($stat[9]);
52         $year += 1900;
53         $month += 1;
54
55         return (sprintf("%04d-%02d-%02d", $year, $month, $day),
56                 sprintf("%04d%02d%02d%02d%02d.%02d", $year, $month, $day,
57                         $hour, $min, $sec),
58                 sprintf("%o", $stat[2] & 07777));
59 }
60
61 sub update_man_page($)
62 {
63         my ($filename) = @_;
64         my @date = get_file_info($filename);
65         my $date_string = $date[0];
66         local *IN;
67         local *OUT;
68
69         $date_string =~ s/-/\\-/g;
70         open(IN, "<$filename") || die ("Error: cannot open $filename\n");
71         open(OUT, ">$filename.new") ||
72                 die("Error: cannot create $filename.new\n");
73         while (<IN>) {
74                 s/\"LCOV\s+\d+\.\d+\"/\"LCOV $version\"/g;
75                 s/\d\d\d\d\\\-\d\d\\\-\d\d/$date_string/g;
76                 print(OUT $_);
77         }
78         close(OUT);
79         close(IN);
80         chmod(oct($date[2]), "$filename.new");
81         system("mv", "-f", "$filename.new", "$filename");
82         system("touch", "$filename", "-t", $date[1]);
83 }
84
85 sub update_bin_tool($)
86 {
87         my ($filename) = @_;
88         my @date = get_file_info($filename);
89         local *IN;
90         local *OUT;
91
92         open(IN, "<$filename") || die ("Error: cannot open $filename\n");
93         open(OUT, ">$filename.new") ||
94                 die("Error: cannot create $filename.new\n");
95         while (<IN>) {
96                 s/(our\s+\$lcov_version\s*=\s*["']).*(["'].*)$/$1LCOV version $version$2/g;
97                 print(OUT $_);
98         }
99         close(OUT);
100         close(IN);
101         chmod(oct($date[2]), "$filename.new");
102         system("mv", "-f", "$filename.new", "$filename");
103         system("touch", "$filename", "-t", $date[1]);
104 }
105
106 sub update_txt_file($)
107 {
108         my ($filename) = @_;
109         my @date = get_file_info($filename);
110         local *IN;
111         local *OUT;
112
113         open(IN, "<$filename") || die ("Error: cannot open $filename\n");
114         open(OUT, ">$filename.new") ||
115                 die("Error: cannot create $filename.new\n");
116         while (<IN>) {
117                 s/(Last\s+changes:\s+)\d\d\d\d-\d\d-\d\d/$1$date[0]/g;
118                 print(OUT $_);
119         }
120         close(OUT);
121         close(IN);
122         chmod(oct($date[2]), "$filename.new");
123         system("mv", "-f", "$filename.new", "$filename");
124         system("touch", "$filename", "-t", $date[1]);
125 }
126
127 sub update_spec_file($)
128 {
129         my ($filename) = @_;
130         my @date = get_file_info($filename);
131         local *IN;
132         local *OUT;
133
134         open(IN, "<$filename") || die ("Error: cannot open $filename\n");
135         open(OUT, ">$filename.new") ||
136                 die("Error: cannot create $filename.new\n");
137         while (<IN>) {
138                 s/^(Version:\s*)\d+\.\d+.*$/$1$version/;
139                 s/^(Release:\s*).*$/$1$release/;
140                 print(OUT $_);
141         }
142         close(OUT);
143         close(IN);
144         system("mv", "-f", "$filename.new", "$filename");
145         system("touch", "$filename", "-t", $date[1]);
146 }