- eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
- # THE PRECEEDING STUFF EXECS perl via $PATH
- # -*-Fundamental-*-
- # (I'm a Emacsian Fundamentalist)
- # $Id: //guest/hari_krishna_dara/perforce/utils/cvs2p4/MANIFEST#1 $
- #
- # Copyright (c) 1996 Network Appliance, Inc.
- #
- # You may distribute under the terms of the Artistic License, as
- # specified in the README file included in the cvs2p4
- # distribution.
- #
- # Original Author: Richard Geiger for Network Appliance, Inc.
- #
- # $Id: //guest/hari_krishna_dara/perforce/utils/cvs2p4/MANIFEST#1 $
- # Here is the manifest.
- # You can update the checksums with "-gen"
- #
- require 5.000;
- use Carp;
- $| = 1;
- ($Myname = $0) =~ s%^.*/%%;
- $Mydirname = &dirname($0);
- chdir $Mydirname || die;
- #path sum1 sum2 opts
- $manifest = <<'MANIFEST';
- MANIFEST:-:-
- Artistic:08887:6:mode=444
- README:35895:20:mode=444
- NEWS:61127:23:mode=444
- bin/genmetadata:29770:26:mode=555
- bin/genchanges:31447:6:mode=555
- bin/dochanges:31750:19:mode=555
- bin/dolabels:34081:7:mode=555
- bin/revmap:13386:2:mode=555
- bin/srcdiff:42456:6:mode=555
- lib/util.pl:22295:3:mode=444
- test/file,v:15732:4:mode=444
- test/phone.gif,v:59723:1:mode=444
- test/dollar$file,v:32426:1:mode=444
- test/space file,v:32426:1:mode=444
- test/pound#file,v:32426:1:mode=444
- test/percent_%file,v:32426:1:mode=444
- test/at@file,v:32426:1:mode=444
- test/star*file,v:32426:1:mode=444
- test/datefile_readd,v:30938:1:mode=444
- test/Attic/datefile,v:12361:1:mode=444
- test/config:27123:7:mode=444
- test/runtest:61263:6:mode=555
- test/norm:48454:1:mode=555
- test/metadata.good:57897:2:mode=444
- test/lines.good:21288:1:mode=444
- test/changes.good:49926:3:mode=444
- test/p4_changes_-l.good:04922:4:mode=444
- test/p4_describe.good:20411:10:mode=444
- test/p4_describe-new.good:07277:11:mode=444
- test/p4_filesat.good:45485:1:mode=444
- test/p4_labels.good:38744:1:mode=444
- MANIFEST
- @manifest = split(/\n/, $manifest);
- $Usage = <<LIT;
- $Myname: usage: $Myname [-gen|-tar <vers>]
- LIT
- sub x
- {
- my ($cmd) = @_;
- print "$Myname: $cmd\n";
- if (! $noexec)
- {
- $status = system $cmd;
- if ($status)
- { printf "$Myname: *** exit status %d\n", $status / 256; exit 1; }
- }
- }
- sub dirname
- {
- my ($dir) = @_;
- $dir =~ s%^$%.%; $dir = "$dir/";
- if ($dir =~ m%^/[^/]*//*$%) { return "/"; }
- if ($dir =~ m%^.*[^/]//*[^/][^/]*//*$%)
- { $dir =~ s%^(.*[^/])//*[^/][^/]*//*$%$1%; { return $dir; } }
- return ".";
- }
- sub usage
- {
- print STDERR $Usage;
- exit 1;
- }
- sub help
- {
- print STDERR <<LIT;
- $Usage
- $Myname is used to help verify the completeness of the cvs2p4
- distribution kit.
- LIT
- exit 1;
- }
- $uname = `/bin/uname -a`; chop $uname;
- ($u_os, $u_host, $u_osrel) = split(/\s+/, $uname);
- if ($u_os eq "SunOS" && $u_osrel =~ /^5\./)
- { $sum = "/usr/ucb/sum"; }
- elsif ($u_os eq "SunOS" && $u_osrel =~ /^4\./)
- { $sum = "/bin/sum"; }
- elsif ($u_os eq "OSF1" && $u_osrel =~ /^V[34]\./)
- { $sum = "/bin/sum" }
- elsif ($u_os eq "FreeBSD" && $u_osrel =~ /^2\.\./)
- { $sum = "NONE" }
- elsif ($u_os eq "Linux" && $u_osrel =~ /^2\./)
- { $sum = "/usr/bin/sum" }
- else
- { print STDERR "\n$Myname: warning: not tested for \"$u_os $u_osrel\".\n\n"; }
- # Take our chances with $PATH
- #
- if (! defined($sum)) { $sum = "sum"; }
- if (! defined($tar)) { $tar = "tar"; }
- $op = "check";
- while ($#ARGV >= 0)
- {
- if ($ARGV[0] eq "-gen") { $op = "gen"; shift; next; }
- elsif ($ARGV[0] eq "-tar")
- {
- $op = "tar"; shift;
- if ($#ARGV < 0) { usage; }
- $vers = $ARGV[0]; shift;
- next;
- }
- elsif ($ARGV[0] eq "-help") { &help; }
- elsif ($ARGV[0] =~ /^-/) { &usage; }
- if ($Args ne "") { $Args .= " "; }
- push(@Args, $ARGV[0]);
- shift;
- }
- if ($#Args != -1) { &usage; }
- if ($op eq "gen")
- {
- @mestat = stat($Myname);
- if (! open(ME, "<$Myname"))
- {
- print "Can't open myself for modification: $!\n";
- exit 1;
- }
- if (! open(NEWME, ">$Myname.gen"))
- {
- print "Can't open myself for modification: $!\n";
- exit 1;
- }
- while (<ME>) { print NEWME; if (/^\$manifest = <<'MANIFEST';$/) { last; } }
- }
- elsif ($op eq "tar")
- { $tarcmd = "$tar cvf cvs2p4-$vers.tar"; }
- if ($op eq "check" && $sum eq "NONE")
- { print "\n[Checksums will not be checked on this $u_os system.]\n\n"; }
- $status = 0;
- foreach $ent (@manifest)
- {
- ($path, $sum1, $sum2, $opts) = split(/:/, $ent);
- if ($op eq "check" || $op eq "gen")
- {
- if (! lstat($path))
- { print "? $path... not found (couldn't stat)\n"; $status |= 1; }
- else
- {
- $linktarg = "";
- if ($opts =~ /\bsymlink=([^,\s]+)\b/)
- { $linktarg = $1; }
- else
- {
- if ($sum ne "NONE")
- {
- $sums = `$sum '$path'`; chop $sums;
- ($csum1, $csum2) = split(/\s+/, $sums);
- }
- }
- if ($op eq "check")
- {
- if ($linktarg ne "")
- {
- if (! -l $path)
- { print "? $path... symlink not found\n"; $status |= 1; }
- else
- {
- $link = readlink $path;
- if ($link ne $linktarg)
- { print "? $path... symlink should be \"$linktarg\"\n"; $status |= 2; }
- else
- { print " $path\n"; }
- }
- }
- else
- {
- if ($path =~ /(\/){0,1}$Myname$/)
- { print " $path\n"; next; }
- if ($sum ne "NONE" && ($csum1 != $sum1 || $csum2 != $sum2))
- { print "M $path... modified (checksums mismatch)\n"; $status |= 2; }
- else
- { print " $path\n"; }
- }
- }
- elsif ($op eq "gen")
- {
- if ($path =~ /(\/){0,1}$Myname$/)
- {
- print NEWME "$path:-:-\n";
- print "$path\n"; next;
- }
- if ($linktarg ne "")
- {
- $_ = "$path:-:-:$opts\n";
- print NEWME;
- print "$path\n";
- }
- else
- {
- $_ = "$path:$csum1:$csum2:$opts\n";
- print NEWME;
- print "$path - checksum generated\n";
- }
- }
- }
- next;
- }
- elsif ($op eq "tar")
- {
- if ($opts =~ /\bmode=([0-9]+)\b/)
- {
- $mode = $1;
- &x("/bin/chmod $mode '$path'");
- }
- @modes = lstat("$path");
- $owners{$path} = $modes[4];
- $groups{$path} = $modes[5];
- chown(0, 0, "$path")
- || print STDERR "WARNING: can't \"chown 0, 0, cvs2p4-$vers/$path\": $!\n";
- $tarcmd .= " 'cvs2p4-$vers/$path'";
- }
- }
- if ($op eq "gen")
- {
- while (<ME>) { if (/^MANIFEST$/) { print NEWME; last; }}
- while (<ME>) { print NEWME; } close NEWME;
- unlink "$Myname.old";
- rename "$Myname", "$Myname.old" || die;
- rename "$Myname.gen", "$Myname" || die;
- chmod $mestat[2], "$Myname" || die;
- }
- elsif ($op eq "tar")
- {
- $Here = `/bin/pwd`; chop $Here;
- ($Herename = $Here) =~ s%^.*/%%;
- $Parent = &dirname($Here);
- &x("/bin/mv $Parent/$Herename $Parent/cvs2p4-$vers");
- chdir $Parent || die;
- &x("$tarcmd")
- &x("/bin/mv $Parent/cvs2p4-$vers $Parent/$Herename");
- &x("/bin/mv $Parent/cvs2p4-$vers.tar $Parent/$Herename/cvs2p4-$vers.tar");
- chdir $Here || die;
- foreach $path (keys(%owners))
- {
- $own = $owners{$path}; $grp = $groups{$path};
- chown ($own, $grp, "$path") ||
- print STDERR "WARNING: can't \"chown $own, $grp, $path\": $!\n";
- }
- }
- print "\n";
- if ($status == 0) { print "All ok\n"; }
- if ($status & 1) { print "*** some files are missing\n"; }
- if ($status & 2) { print "*** some files have been modified\n"; }
- exit $status;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5093 | Hari Krishna Dara |
Populating perforce branch. I will be adding p4admin files to it. |
20 years ago | |
//guest/perforce_software/utils/cvs2p4/MANIFEST | |||||
#35 | 4985 | Richard Geiger |
Long live 2.5.4. (Adds bni/srcdiff) |
20 years ago | |
#34 | 4926 | Richard Geiger | Add corrected .good file! | 20 years ago | |
#33 | 4924 | Richard Geiger | publish 2.5.3 | 20 years ago | |
#32 | 4735 | Richard Geiger | This is release 2.5, which handles those four extra special characters Perforce 2004.2 ki...nd-of allows :-) « |
20 years ago | |
#31 | 4354 | Richard Geiger | Integrate 2.4 changes. | 21 years ago | |
#30 | 4274 | Richard Geiger | Publish 2.3.8 | 21 years ago | |
#29 | 3711 | Richard Geiger | release 2.3.7 | 21 years ago | |
#28 | 3600 | Richard Geiger | publish 2.3.5. | 22 years ago | |
#27 | 2449 | rmg | Public 2.3.4 | 22 years ago | |
#26 | 2285 | rmg | Publish 2.3.3 | 22 years ago | |
#25 | 2063 | rmg | Publish 2.3.2 | 23 years ago | |
#24 | 1989 | Richard Geiger | Public 2.3.1 | 23 years ago | |
#23 | 1971 | rmg | Publish 2.2 | 23 years ago | |
#22 | 1946 | rmg | Publish 2.1 | 23 years ago | |
#21 | 1786 | rmg | Publish 2.0 | 23 years ago | |
#20 | 1439 | rmg | Publish 1.3.3 | 23 years ago | |
#19 | 1410 | rmg | Publish 1.3.2 | 23 years ago | |
#18 | 1205 | Richard Geiger | Publish 1.3.1 | 23 years ago | |
#17 | 1187 | Richard Geiger |
1.3. Mainly, support for labels! |
23 years ago | |
#16 | 1033 | Richard Geiger | publish 1.2.17 | 23 years ago | |
#15 | 796 | Richard Geiger | Release 1.2.16 update | 24 years ago | |
#14 | 476 | Richard Geiger | publish cvs2p4 1.2.15 | 24 years ago | |
#13 | 462 | Richard Geiger | publish 1.2.14 to the public site. | 24 years ago | |
#12 | 436 | Richard Geiger | Publish 1.2.13 | 25 years ago | |
#11 | 418 | Richard Geiger | Publish 1.2.12 | 25 years ago | |
#10 | 400 | Richard Geiger | Publish 1.2.11 | 25 years ago | |
#9 | 395 | Richard Geiger | 1.2.10 | 25 years ago | |
#8 | 344 | Richard Geiger | 1.2.9 | 25 years ago | |
#7 | 333 | Richard Geiger | Publish 1.2.8 (Not usre why test/file,v was included in this integration; am guessing it... was a missed integrations left over from 1.2.7, perhaps) « |
25 years ago | |
#6 | 321 | Richard Geiger | Ah, also update these for 1.2.7 | 25 years ago | |
#5 | 285 | Richard Geiger |
Fix MANIFEST so that it (and the distribution archive) contains itself. |
25 years ago | |
#4 | 256 | james | push cvs2p4 1.2.6 to public area | 25 years ago | |
#3 | 242 | james | Pull cvs2p4 into //public so latest version (1.2.5) gets synced onto the Perforce FTP are...a. Note the cvs2p4-latest.tar symlink - I'll update loadsupp to point to that. « |
25 years ago | |
#2 | 230 | Laura Wingerd | Pull cvs2p4 into //public so latest version (1.2.4) gets synced onto the Perforce FTP are...a. « |
26 years ago | |
#1 | 152 | Laura Wingerd | cvs2p4 goes public. | 26 years ago | |
//guest/richard_geiger/utils/cvs2p4/MANIFEST | |||||
#1 | 130 | Richard Geiger | CVS-to-Perforce converter. This is release 1.2.2 (first submit to the Perforce Public Dep...ot) « |
26 years ago |