home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / ncftp / older_versions / ncftp-3.2.2-src.tar.bz2 / ncftp-3.2.2-src.tar / ncftp-3.2.2 / sh / winsetver.pl < prev   
Perl Script  |  2002-03-27  |  3KB  |  149 lines

  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4.  
  5. my @rc_files = (
  6.     "ncftp/rc.rc",
  7.     "sh_util/rc.rc",
  8.     "win/bmed/bmed.rc"
  9. );
  10.  
  11. my $setup_file = "win/setup/ncftp.wse";
  12.  
  13.  
  14. sub SetVersionInRCFile
  15. {
  16.     my ($f, $fver, $fbld, $pver, $pbld) = @_;
  17.     my ($rcdata) = "";
  18.     my ($line);
  19.     my ($verstr);
  20.     my ($curyear);
  21.  
  22.     return (0) unless ($fver =~ /^\d+\.\d+\.\d+$/);
  23.     $fbld = "increment" unless (defined($fbld));
  24.     $pver = $fver unless (defined($pver));
  25.     $pbld = $fbld unless (defined($pbld));
  26.  
  27.     if (open(F, "< $f")) {
  28.         while (defined($line = <F>)) {
  29.             $rcdata .= $line;
  30.         }
  31.         close(F);
  32.  
  33.         #
  34.         # Set the FILE version.
  35.         #
  36.         if ($fbld eq "increment") {
  37.             $fbld = 0;
  38.             if ($rcdata =~ /\s*FILEVERSION\s+\d+,\d+,\d+,(\d+)\s*/) {
  39.                 $fbld = $1;
  40.             }
  41.             $fbld++;
  42.         }
  43.  
  44.         $verstr = "$fver,$fbld";
  45.         $verstr =~ s/\./,/g;
  46.  
  47.         $rcdata =~ s/FILEVERSION\s+\d+,\d+,\d+,\d+/FILEVERSION $verstr/;
  48.         $rcdata =~ s/FileVersion.*\\0/FileVersion\", \"$fver\\0/m;
  49.  
  50.  
  51.         #
  52.         # Set the PRODUCT version.
  53.         #
  54.         if ($pbld eq "increment") {
  55.             $pbld = 0;
  56.             if ($rcdata =~ /\s*PRODUCTVERSION\s+\d+,\d+,\d+,(\d+)\s*/) {
  57.                 $pbld = $1;
  58.             }
  59.             $pbld++;
  60.         }
  61.  
  62.         $verstr = "$pver,$pbld";
  63.         $verstr =~ s/\./,/g;
  64.  
  65.         $rcdata =~ s/PRODUCTVERSION\s+\d+,\d+,\d+,\d+/PRODUCTVERSION $verstr/;
  66.         $rcdata =~ s/ProductVersion.*\\0/ProductVersion\", \"$pver\\0/m;
  67.  
  68.  
  69.         #
  70.         # Make sure the COPYRIGHT is up-to-date.
  71.         #
  72.         $curyear = (localtime())[5] + 1900;
  73.         $rcdata =~ s/Copyright\s(\S|\(C\))\s*\d{4}/Copyright ⌐ $curyear/i;
  74.  
  75.         if (open(F, "> $f")) {
  76.             print F $rcdata;
  77.             close(F);
  78.             return (1);
  79.         }
  80.     }
  81.  
  82.     return (0);
  83. }    # SetVersionInRCFile
  84.  
  85.  
  86.  
  87. sub SetVersionInSetupFile
  88. {
  89.     my ($f, $fver) = @_;
  90.     my ($fdata) = "";
  91.     my ($line);
  92.  
  93.     return (0) unless ($fver =~ /^\d+\.\d+\.\d+$/);
  94.  
  95.     if (open(F, "< $f")) {
  96.         while (defined($line = <F>)) {
  97.             $fdata .= $line;
  98.         }
  99.         close(F);
  100.  
  101.         $fdata =~ s/^(\s*(Title|EXE\sFilename)=.*?)([\d\.]+)(.*)$/$1$fver$4/mg;
  102.  
  103.         # Variable=APPTITLE
  104.         $fdata =~ s/^(\s*Value=NcFTP.*?)([\d\.]+)(.*)$/$1$fver$3/mg;
  105.  
  106.         if (open(F, "> $f")) {
  107.             print F $fdata;
  108.             close(F);
  109.             return (1);
  110.         }
  111.     }
  112.  
  113.     return (0);
  114. }    # SetVersionInSetupFile
  115.  
  116.  
  117.  
  118. sub Main
  119. {
  120.     my ($f);
  121.     my ($ver);
  122.  
  123.     if ((! defined($ARGV[0])) || ($ARGV[0] !~ /^\d+\.\d+\.\d+$/)) {
  124.         print STDERR "Usage:    $0 <version>\n";
  125.         print STDERR "Example:  $0 3.1.2\n";
  126.         exit(2);
  127.     }
  128.     $ver = $ARGV[0];
  129.  
  130.     foreach $f (@rc_files) {
  131.         if (! -f $f) {
  132.             die "Missing \"$f\".  Chdir to the NcFTP source first.\n";
  133.         }
  134.         SetVersionInRCFile($f, $ver, "increment")
  135.             or die "Could not change $f to version $ver: $!\n";
  136.         print "Changed: $f\n";
  137.     }
  138.  
  139.     $f = $setup_file;
  140.     SetVersionInSetupFile($f, $ver)
  141.         or die "Could not change $f to version $ver: $!\n";
  142.     print "Changed: $f\n";
  143.     exit(0);
  144. }    # Main
  145.  
  146.  
  147.  
  148. Main();
  149.