$S = "\001";
#$S = ";";
sub atq
{
my ($s) = @_;
$s =~ s/\@/\@\@/g;
return "\@$s\@";
}
sub traverse
{
local($dir, $lev, $onfile, $ondir, $onsymlink) = @_;
local($dirent);
local($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks);
local($dirhandle) = "dh$lev";
opendir($dirhandle, $dir);
while (($dirent = readdir($dirhandle)))
{
if ($dirent eq "." || $dirent eq "..") { next; }
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks) = lstat("$dir/$dirent");
typsw:
{
-f _ && do
{
if (defined(&$onfile)) { &$onfile("$dir", "$dirent"); }
last typsw;
} ;
-d _ && do
{
if (defined(&$ondir)) { &$ondir("$dir", "$dirent"); }
do traverse("$dir/$dirent", $lev+1, $onfile, $ondir, $onsymlink);
last typsw;
} ;
-l "$dir/$dirent" && do
{
if (defined(&$onsymlink)) { &$onsymlink("$dir", "$dirent"); }
if ($SYM_SPECIAL && $lev == 0)
{ do traverse("$dir/$dirent", $lev+1, $onfile, $ondir, $onsymlink); }
last typsw;
} ;
}
}
closedir($dirhandle);
}
sub rm
{
my($path) = @_;
my($sts) = 0;
if (-e $path)
{
print "$Myname> unlink $path\n";
$sts = unlink $path;
$sts = (! $sts);
if ($sts) { print ("$Myname: *** \"unlink $path\" returned $sts\n"); }
}
return $sts;
}
sub s
{
my ($cmd, $doit) = @_;
my ($sts);
if (! defined($doit)) { $doit = 1; }
if (! $doit)
{
print "$Myname; $cmd\n";
return;
}
print "$Myname> $cmd\n";
if (($sts = system($cmd)) != 0)
{
my $sig = $sts & 0x0f;
$sts = $sts >> 8;
print ("$Myname: *** \"$cmd\" exited with signal $sig status $sts\n");
return $sts;
}
return 0;
}
sub p4d_vers
{
my ($P4D) = @_;
my $v = `$P4D -V`;
my ($y, $r) = ($v =~ m/\nRev. P4D\/[^\/]+\/(\d+)\.(\d+).*\//);
if (! $v || ! $r)
{ print "$Myname: cannot recognize p4d version in:\n$v\n"; exit 1; }
return ($y, $r);
}
1;
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #3 | 1726 | Richard Geiger |
Write upgrade counter; also, insure we have 2002.1 or better, and run p4d -xu to upgrade if later than 2002.1. |
||
| #2 | 1650 | Richard Geiger | 2.0b1 changes. | ||
| #1 | 1636 | Richard Geiger | Branch for working on a direct-metadata generation verison of cvs2p4 | ||
| //guest/richard_geiger/utils/cvs2p4/lib/util.pl | |||||
| #2 | 249 | Richard Geiger |
Changes in preparation for supporting spaces in filenames. (In fact, this may work as of this change, but is not yet tested.) Also, add "runtest -gengood" to allow easier generatino of new *.good files. (It just doesn't quick on a miscompare!). |
||
| #1 | 130 | Richard Geiger |
CVS-to-Perforce converter. This is release 1.2.2 (first submit to the Perforce Public Depot) |
||