use strict;
use warnings;
open(P4, "p4 files //depot/User/...#have |") || die "could not open pipe p4 files\n";
my %made;
while (<P4>)
{
# clean up the file name
chomp;
s/#.*//;
# create the subdirectory tree
my @dirs = split /\//;
my $fileName = pop @dirs;
my $built = "";
foreach my $dir (@dirs)
{
if ($dir ne "")
{
$built .= "/" if ($built ne "");
$built .= $dir;
if (!defined $made{$built})
{
if (!-d $built)
{
mkdir $built || die "mkdir failed $built\n";
}
$made{$built} = 1;
}
}
}
open(F, ">" . $built . "/" . $fileName);
print F $_, "\n";
close(F);
}
close(P4);