public static IConsoleAppValidator GetTsvAndIntervalFiles(this IConsoleAppValidator validator, string tsvFilesDirectory, List <string> intermediateFiles, List <string> intervalFiles, List <string> geneTsvFiles, ref string miscFiles) { if (!Directory.Exists(tsvFilesDirectory)) { return(validator); } foreach (var file in Directory.GetFiles(tsvFilesDirectory)) { if (!file.EndsWith(".tsv.gz")) { continue; } if (file.EndsWith(".interval.tsv.gz")) { intervalFiles.Add(file); continue; } if (file.EndsWith(".misc.tsv.gz")) { miscFiles = file; continue; } if (file.EndsWith(".gene.tsv.gz")) { geneTsvFiles.Add(file); continue; } intermediateFiles.Add(file); } return(validator); }
public static IConsoleAppValidator Enable(this IConsoleAppValidator validator, bool condition, Action method) { if (condition) { method(); } return(validator); }
public static IConsoleAppValidator CheckEachFilenameExists(this IConsoleAppValidator validator, IEnumerable <string> filePaths, string description, string commandLineOption, bool isRequired = true) { foreach (string filePath in filePaths) { validator.CheckInputFilenameExists(filePath, description, commandLineOption, isRequired); } return(validator); }
private static ExitCodes Execute(IConsoleAppValidator validator) { return(validator .DisableOutput(true) .ShowBanner("authors") .ShowHelpMenu("description", "example") .ShowErrors() .Execute(() => ExitCodes.Success)); }
public static IConsoleAppValidator CheckNonZero(this IConsoleAppValidator validator, int num, string description) { if (num == 0) { validator.Data.AddError( $"At least one {description} should be provided.", ExitCodes.MissingCommandLineOption); } return(validator); }
public static IConsoleAppValidator CheckOutputFilenameSuffix(this IConsoleAppValidator validator, string filePath, string fileSuffix, string description) { if (validator.SkipValidation) { return(validator); } if (!filePath.EndsWith(fileSuffix)) { validator.Data.AddError($"The {description} file ({filePath}) does not end with a {fileSuffix}.", ExitCodes.BadArguments); } return(validator); }
public static IConsoleAppValidator HasRequiredParameter <T>(this IConsoleAppValidator validator, T parameterValue, string description, string commandLineOption) { if (validator.SkipValidation) { return(validator); } if (EqualityComparer <T> .Default.Equals(parameterValue, default)) { validator.Data.AddError($"The {description} was not specified. Please use the {commandLineOption} parameter.", ExitCodes.MissingCommandLineOption); } return(validator); }
public static IConsoleAppValidator CheckDirectoryExists(this IConsoleAppValidator validator, string dirPath, string description, string commandLineOption) { if (validator.SkipValidation) { return(validator); } if (string.IsNullOrEmpty(dirPath)) { validator.Data.AddError( $"The {description} directory was not specified. Please use the {commandLineOption} parameter.", ExitCodes.MissingCommandLineOption); } else if (!Directory.Exists(dirPath)) { validator.Data.AddError($"The {description} directory ({dirPath}) does not exist.", ExitCodes.PathNotFound); } return(validator); }
public static IConsoleAppValidator CheckInputFilenameExists(this IConsoleAppValidator validator, string filePath, string description, string commandLineOption, bool isRequired = true, string ignoreValue = null) { if (validator.SkipValidation) { return(validator); } if (string.IsNullOrEmpty(filePath) && isRequired) { validator.Data.AddError( $"The {description} file was not specified. Please use the {commandLineOption} parameter.", ExitCodes.MissingCommandLineOption); } else if (isRequired && (ignoreValue == null || filePath != ignoreValue) && !File.Exists(filePath) && !CheckUrlExist(filePath)) { validator.Data.AddError($"The {description} file ({filePath}) does not exist.", ExitCodes.FileNotFound); } return(validator); }
public static IConsoleAppValidator HasRequiredDate(this IConsoleAppValidator validator, string date, string description, string commandLineOption) { if (validator.SkipValidation) { return(validator); } validator.HasRequiredParameter(date, description, commandLineOption); if (string.IsNullOrEmpty(date)) { return(validator); } if (!DateTime.TryParse(date, out _)) { validator.Data.AddError($"The {description} was not specified as a date (YYYY-MM-dd). Please use the {commandLineOption} parameter.", ExitCodes.BadArguments); } return(validator); }
/// <summary> /// checks if an input directory exists /// </summary> public static IConsoleAppValidator CheckEachDirectoryContainsFiles(this IConsoleAppValidator validator, IEnumerable <string> directories, string description, string commandLineOption, string searchPattern) { if (validator.SkipValidation) { return(validator); } foreach (string directoryPath in directories) { var files = Directory.Exists(directoryPath) ? Directory.GetFiles(directoryPath, searchPattern) : null; if (files != null && files.Length != 0) { continue; } validator.Data.AddError( $"The {description} directory ({directoryPath}) does not contain the required files ({searchPattern}). Please use the {commandLineOption} parameter.", ExitCodes.FileNotFound); } return(validator); }