public bool TryParse(CommonCopyCommandOptions options) { var baseOptions = (CommonFindCommandOptions)options; if (!TryParse(baseOptions)) { return(false); } options = (CommonCopyCommandOptions)baseOptions; if (!FilterParser.TryParse( Name, OptionNames.Name, OptionValueProviders.PatternOptionsProvider, out Filter? nameFilter, out FileNamePart namePart, allowNull: true)) { return(false); } options.NameFilter = nameFilter; options.NamePart = namePart; return(true); }
public bool TryParse(CommonCopyCommandOptions options) { var baseOptions = (CommonFindCommandOptions)options; if (!TryParse(baseOptions)) { return(false); } options = (CommonCopyCommandOptions)baseOptions; return(true); }
public bool TryParse(CommonCopyCommandOptions options) { var baseOptions = (CommonFindCommandOptions)options; if (!TryParse(baseOptions)) { return(false); } options = (CommonCopyCommandOptions)baseOptions; if (!FilterParser.TryParse( Name, OptionNames.Name, OptionValueProviders.PatternOptionsProvider, out Filter? nameFilter, out FileNamePart namePart, allowNull: true)) { return(false); } #if DEBUG if (!TryParseAsEnumFlags( IgnoredAttributes, OptionNames.IgnoredAttributes, out FileSystemAttributes noCompareAttributes, provider: OptionValueProviders.FileSystemAttributesToSkipProvider)) { return(false); } TimeSpan allowedTimeDiff = TimeSpan.Zero; if (AllowedTimeDiff != null && !TimeSpan.TryParse(AllowedTimeDiff, CultureInfo.InvariantCulture, out allowedTimeDiff)) { Logger.WriteError($"Option '{OptionNames.GetHelpText(OptionNames.AllowedTimeDiff)}' " + $"has invalid value '{AllowedTimeDiff}'."); return(false); } options.AllowedTimeDiff = allowedTimeDiff; options.NoCompareAttributes = GetFileAttributes(noCompareAttributes); #endif options.NameFilter = nameFilter; options.NamePart = namePart; return(true); }
public static bool TryParseTargetDirectory( string value, [NotNullWhen(true)] out string?result, CommonCopyCommandOptions options, string directoryName, string optionName) { result = null; if (value != null) { if (!TryEnsureFullPath(value, out result)) { return(false); } } else { int length = options.Paths.Length; if (length < 2) { WriteError($"{directoryName} directory is required. It can be specified either as a last unnamed parameter " + $"or using option '{OptionNames.GetHelpText(optionName)}'."); return(false); } else { result = options.Paths[length - 1].Path; options.Paths = options.Paths.RemoveAt(length - 1); } } return(true); }