| OLD | NEW |
| (Empty) |
| 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 $v
ersion$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 } | |
| OLD | NEW |