made a copy
[strongtalk-kjk.git] / tools / basePublish.bat
blob8eb72e7ce7e42a72204812e8b07b0aa732efeddd
1 @rem = ' Copyright 1994, Animorphic Systems. $Revision: 1.4 $\r
2 @echo off\r
3 perl -S %0.bat %1 %2\r
4 goto endofperl\r
5 ';\r
6 \r
7 local($sub)  = $ARGV[0];\r
8 local($file) = $ARGV[1];\r
9 \r
10 sub dirname {\r
11     local($name) = @_;\r
12     $name =~ s/\\/\//g;\r
13     $name =~ tr/A-Z/a-z/;\r
14     return $name;\r
15 }\r
17 $Baseline  = do dirname($ENV{'DeltaBaselineDir'});\r
18 $Delta     = do dirname($ENV{'DeltaDir'});\r
20 $localfile = "$Delta/$sub/$file";\r
21 $basefile  = "$Baseline/$sub/$file";\r
22 $rcsfile   = "$Baseline/$sub/RCS/$file,v";\r
24 sub checkIn {\r
25     local($dir, $file) = @_;\r
26     local($rev_number) = 1;\r
27     local($rev_name)   = "Genesis";\r
28     \r
29     chdir($dir);\r
30     if (-f "RCS/$file,v") {\r
31         `rcs -U -q $file`;\r
32     }\r
33     `ci -u$rev_number -m$rev_number -N$rev_name -q -t- $file`;\r
34 }\r
36 sub needDirectory {\r
37     local($dir) = @_;\r
38     if (! -d $dir) {\r
39         mkdir($dir,0777) || die "Couldn't create $dir!\n";\r
40     }\r
41 }\r
43 if (! -f $localfile) {\r
44     die "Local file: $localfile does not exist!\n";\r
45 }\r
47 & needDirectory("$Baseline/$sub");\r
48 & needDirectory("$Baseline/$sub/RCS");\r
50 sub doit {\r
51     printf STDERR "\nPublish: %s in %s.\n", $file, $sub;\r
52     chmod(0666,$basefile);\r
53     `cp $localfile $localfile.publish`;\r
54     `cp $localfile $basefile`;\r
55     &checkIn("$Baseline/$sub", $file);\r
56     chmod(0444,$baseline);\r
57     `cp $basefile $localfile`;\r
58     chmod(0666,$localfile);\r
59 }\r
62 if (! -f $basefile) {\r
63     &doit;\r
64     exit(0);\r
65 }\r
67 chop($result =  `diff $basefile $localfile`);\r
68 exit(0) if $result eq "";\r
70 sub reverse{\r
71   local($name) = @_;\r
72   $name =~ s/\//\\/g;\r
73   return $name;\r
74 }\r
76 $r_basefile  = &reverse($basefile);\r
77 $r_localfile = &reverse($localfile);\r
79 $base_rev = `getRevision $r_basefile`;\r
80 $local_rev = `getRevision $r_localfile`;\r
82 if ($base_rev eq $local_rev) {\r
83   &doit;\r
84 } else {\r
85   printf STDERR "Revision number in the local file conflicts\n";\r
86   printf STDERR "with the revision number in the baseline file\n";\r
87   printf STDERR "Local:    $localfile ($local_rev)\n";\r
88   printf STDERR "Baseline: $basefile  ($base_rev)\n";\r
89 }\r
90 __END__\r
91 :endofperl\r