windows-nt/Source/XPSP1/NT/admin/pchealth/build/tools/sdslm/redub.pl
2020-09-26 16:20:57 +08:00

143 lines
2.7 KiB
Perl

# __________________________________________________________________________________
#
# Purpose:
# PERL Script to rename a file in the Perforce database
#
# Parameters:
# See Usage below
#
# Output:
# Perforce output or the appropriate error message or usage statement
#
# __________________________________________________________________________________
#
# Load common SLM wrapper subroutine module
#
use SlmSubs;
#
# Parse command line arguments
#
SlmSubs::ParseArgs(@ARGV);
#
# Call usage and exit if ParseArgs has set the Usage or InvalidFlag flags
#
if ($Usage or $InvalidFlag)
{
print $ErrorMessage;
&Usage;
exit 1;
}
#
# Recursive flag not supported
#
if ($Recursive)
{
print "\n";
print "Error: This command does not work recursively\n";
print "\n";
&Usage;
exit 1;
}
#
# Need to have a file list
#
if (!@FileList)
{
print "\n";
print "Error: No files specified\n";
print "\n";
&Usage;
exit 1;
}
#
# Need to have exactly two files in @FileList
#
if (@FileList != 2)
{
print "\n";
print "Error: Must have two files specified on command line\n";
print "\n";
&Usage;
exit 1;
}
#
# Wildcards and subdirectories are not supported
#
if ((grep { /\*/ } @FileList) or (grep { /\?/ } @FileList))
{
print "\n";
print "Error: Wildcards are not supported\n";
print "\n";
&Usage;
exit 1;
}
if (grep { /\\/ } @FileList)
{
print "\n";
print "Error: Subdirectories are not supported\n";
print "\n";
&Usage;
exit 1;
}
#
# Need to make sure first file exists
#
open EXISTINGFILE, "< $FileList[0]";
if (! EXISTINGFILE)
{
print "\n";
print "Error: Cannot find file $FileList[0]\n";
print "\n";
&Usage;
exit 1;
}
else
{
close EXISTINGFILE;
}
#
# Initialize lists
#
@SubmitList = ();
system "$SourceControlClient integrate $FileList[0] $FileList[1]";
system "$SourceControlClient delete $FileList[0]";
SlmSubs::CreateSubmitList("branch", \@SubmitList);
SlmSubs::CreateSubmitList("delete", \@SubmitList);
@SubmitOutput = SlmSubs::PerforceRequest("submit", \@SubmitList);
print "@SubmitOutput";
sub Usage
# __________________________________________________________________________________
#
# Prints out a usage statement for this script. In this case an amalgamation of
# basic SLM command usage
#
# Parameters:
# None
#
# Output:
# The usage statement
#
# __________________________________________________________________________________
{
print q/redub - renames a file in the source database
Usage: redub [-?fh] file1 file2
Arguments:
-h prints out this message.
file1 Name of file to be renamed.
file2 New name for renamed file.
/;
}