Index: third_party/lcov/bin/updateversion.pl |
=================================================================== |
--- third_party/lcov/bin/updateversion.pl (revision 0) |
+++ third_party/lcov/bin/updateversion.pl (revision 0) |
@@ -0,0 +1,146 @@ |
+#!/usr/bin/perl -w |
+ |
+use strict; |
+ |
+sub update_man_page($); |
+sub update_bin_tool($); |
+sub update_txt_file($); |
+sub update_spec_file($); |
+sub get_file_info($); |
+ |
+our $directory = $ARGV[0]; |
+our $version = $ARGV[1]; |
+our $release = $ARGV[2]; |
+ |
+our @man_pages = ("man/gendesc.1", "man/genhtml.1", "man/geninfo.1", |
+ "man/genpng.1", "man/lcov.1", "man/lcovrc.5"); |
+our @bin_tools = ("bin/gendesc", "bin/genhtml", "bin/geninfo", |
+ "bin/genpng", "bin/lcov"); |
+our @txt_files = ("README"); |
+our @spec_files = ("rpm/lcov.spec"); |
+ |
+if (!defined($directory) || !defined($version) || !defined($release)) { |
+ die("Usage: $0 <directory> <version string> <release string>\n"); |
+} |
+ |
+foreach (@man_pages) { |
+ print("Updating man page $_\n"); |
+ update_man_page($directory."/".$_); |
+} |
+foreach (@bin_tools) { |
+ print("Updating bin tool $_\n"); |
+ update_bin_tool($directory."/".$_); |
+} |
+foreach (@txt_files) { |
+ print("Updating text file $_\n"); |
+ update_txt_file($directory."/".$_); |
+} |
+foreach (@spec_files) { |
+ print("Updating spec file $_\n"); |
+ update_spec_file($directory."/".$_); |
+} |
+print("Done.\n"); |
+ |
+sub get_file_info($) |
+{ |
+ my ($filename) = @_; |
+ my ($sec, $min, $hour, $year, $month, $day); |
+ my @stat; |
+ |
+ @stat = stat($filename); |
+ ($sec, $min, $hour, $day, $month, $year) = localtime($stat[9]); |
+ $year += 1900; |
+ $month += 1; |
+ |
+ return (sprintf("%04d-%02d-%02d", $year, $month, $day), |
+ sprintf("%04d%02d%02d%02d%02d.%02d", $year, $month, $day, |
+ $hour, $min, $sec), |
+ sprintf("%o", $stat[2] & 07777)); |
+} |
+ |
+sub update_man_page($) |
+{ |
+ my ($filename) = @_; |
+ my @date = get_file_info($filename); |
+ my $date_string = $date[0]; |
+ local *IN; |
+ local *OUT; |
+ |
+ $date_string =~ s/-/\\-/g; |
+ open(IN, "<$filename") || die ("Error: cannot open $filename\n"); |
+ open(OUT, ">$filename.new") || |
+ die("Error: cannot create $filename.new\n"); |
+ while (<IN>) { |
+ s/\"LCOV\s+\d+\.\d+\"/\"LCOV $version\"/g; |
+ s/\d\d\d\d\\\-\d\d\\\-\d\d/$date_string/g; |
+ print(OUT $_); |
+ } |
+ close(OUT); |
+ close(IN); |
+ chmod(oct($date[2]), "$filename.new"); |
+ system("mv", "-f", "$filename.new", "$filename"); |
+ system("touch", "$filename", "-t", $date[1]); |
+} |
+ |
+sub update_bin_tool($) |
+{ |
+ my ($filename) = @_; |
+ my @date = get_file_info($filename); |
+ local *IN; |
+ local *OUT; |
+ |
+ open(IN, "<$filename") || die ("Error: cannot open $filename\n"); |
+ open(OUT, ">$filename.new") || |
+ die("Error: cannot create $filename.new\n"); |
+ while (<IN>) { |
+ s/(our\s+\$lcov_version\s*=\s*\").*(\".*)$/$1LCOV version $version$2/g; |
+ print(OUT $_); |
+ } |
+ close(OUT); |
+ close(IN); |
+ chmod(oct($date[2]), "$filename.new"); |
+ system("mv", "-f", "$filename.new", "$filename"); |
+ system("touch", "$filename", "-t", $date[1]); |
+} |
+ |
+sub update_txt_file($) |
+{ |
+ my ($filename) = @_; |
+ my @date = get_file_info($filename); |
+ local *IN; |
+ local *OUT; |
+ |
+ open(IN, "<$filename") || die ("Error: cannot open $filename\n"); |
+ open(OUT, ">$filename.new") || |
+ die("Error: cannot create $filename.new\n"); |
+ while (<IN>) { |
+ s/(Last\s+changes:\s+)\d\d\d\d-\d\d-\d\d/$1$date[0]/g; |
+ print(OUT $_); |
+ } |
+ close(OUT); |
+ close(IN); |
+ chmod(oct($date[2]), "$filename.new"); |
+ system("mv", "-f", "$filename.new", "$filename"); |
+ system("touch", "$filename", "-t", $date[1]); |
+} |
+ |
+sub update_spec_file($) |
+{ |
+ my ($filename) = @_; |
+ my @date = get_file_info($filename); |
+ local *IN; |
+ local *OUT; |
+ |
+ open(IN, "<$filename") || die ("Error: cannot open $filename\n"); |
+ open(OUT, ">$filename.new") || |
+ die("Error: cannot create $filename.new\n"); |
+ while (<IN>) { |
+ s/^(Version:\s*)\d+\.\d+.*$/$1$version/; |
+ s/^(Release:\s*).*$/$1$release/; |
+ print(OUT $_); |
+ } |
+ close(OUT); |
+ close(IN); |
+ system("mv", "-f", "$filename.new", "$filename"); |
+ system("touch", "$filename", "-t", $date[1]); |
+} |
Property changes on: third_party/lcov/bin/updateversion.pl |
___________________________________________________________________ |
Name: svn:executable |
+ * |