Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }