Revision: 9759 https://osdn.net/projects/ttssh2/scm/svn/commits/9759 Author: nmaya Date: 2022-02-20 14:03:14 +0900 (Sun, 20 Feb 2022) Log Message: ----------- svnrev.pl に既存リビジョンのチェックを追加 既存のヘッダファイルとリビジョンが変わっているときだけヘッダファイルを出力するようにした ttssh2-dev 257, 265 Modified Paths: -------------- trunk/svnrev_perl/svnrev.pl -------------- next part -------------- Modified: trunk/svnrev_perl/svnrev.pl =================================================================== --- trunk/svnrev_perl/svnrev.pl 2022-02-19 15:40:13 UTC (rev 9758) +++ trunk/svnrev_perl/svnrev.pl 2022-02-20 05:03:14 UTC (rev 9759) @@ -18,7 +18,11 @@ my $verbose = 0; my $script_name = $0; my $header = "This file was generated by svnrev_perl/svnrev.pl"; -my %svninfo = (); +my %svninfo = ( + name => '', + release => 0, + Revision => '' + ); sub read_toolinfo { my $info = "toolinfo.txt"; @@ -145,6 +149,28 @@ close($FD); } +sub read_revision_from_header() +{ + my ($out_header) = @_; + + # ヘッダーファイルがない場合 + if (! -f $out_header) { + return ''; + } + + open FH, '<', $out_header || die "error open $out_header"; + while (<FH>) { + if (/#define SVNVERSION (\d+)/) { + close FH; + return $1; + } + } + close FH; + + # パターンマッチしない場合 + return ''; +} + &search_svn(); &search_git(); &read_toolinfo(); @@ -242,19 +268,23 @@ # do not use VCS } -if ($svninfo{'release'} != 1) { - $svninfo{'release'} = 0; +if ($verbose != 0) { + &dump_info(%svninfo); } +# read revision from out header file +my $header_revision = &read_revision_from_header($out_header); if ($verbose != 0) { - &dump_info(%svninfo); + print "Revision of header is '$header_revision'\n"; } # output for source(C,C++) header -if ($verbose != 0) { - print "write '$out_header'\n"; +if ($header_revision ne $svninfo{'Revision'}) { + if ($verbose != 0) { + print "write '$out_header'\n"; + } + write_info_header($out_header, %svninfo); } -write_info_header($out_header, %svninfo); # output for bat file if ($verbose != 0) {