123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- #!/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]);
- }
|