private bool Validate(string srcDir, string destDir, InputParams parameters)
{
if (((parameters.IncludeFiles != null) && (parameters.ExcludeFiles != null)) ||
((parameters.IncludeDirs != null) && (parameters.ExcludeDirs != null)))
{
PrintUsage();
return false;
}
string fullSrcDir = Path.GetFullPath(srcDir);
string fullDestDir = Path.GetFullPath(destDir);
if (destDir.StartsWith(fullSrcDir) || srcDir.StartsWith(fullDestDir))
{
Trace("Error: source directory {0} and destination directory {1} cannot contain each other", fullSrcDir, fullDestDir);
return false;
}
if (((parameters.DeleteExcludeFiles != null) || (parameters.DeleteExcludeDirs != null)) &&
(!parameters.DeleteFromDest))
{
Trace("Error: exclude-from-deletion options (-ndf and -ndd) require deletion (-d) enabled.");
return false;
}
// ensure source directory exists
if (!Directory.Exists(srcDir))
{
this.Trace("Error: source directory {0} not found", srcDir);
return false;
}
return true;
}