From 40b1ad74a49b603ff0ba0336c33b9ea087a06153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Verdier?= Date: Mon, 9 Sep 2019 18:13:23 +0200 Subject: [PATCH 1/2] Exit with an error if a glob didn't expand to any file --- XmlSchemaClassGenerator.Console/Program.cs | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/XmlSchemaClassGenerator.Console/Program.cs b/XmlSchemaClassGenerator.Console/Program.cs index f29fdd1f..dbeeabb8 100644 --- a/XmlSchemaClassGenerator.Console/Program.cs +++ b/XmlSchemaClassGenerator.Console/Program.cs @@ -90,7 +90,7 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l { "cc|complexTypesForCollections", "generate complex types for collections (default is true)", v => generateComplexTypesForCollections = v != null }, }; - var files = options.Parse(args); + var globsAndUris = options.Parse(args); if (showHelp) { @@ -98,7 +98,24 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l return; } - files = files.SelectMany(f => Glob.ExpandNames(f)).Concat(files.Where(f => Uri.IsWellFormedUriString(f, UriKind.Absolute))).ToList(); + var uris = new List(); + foreach (var globOrUri in globsAndUris) + { + if (Uri.IsWellFormedUriString(globOrUri, UriKind.Absolute)) + { + uris.Add(globOrUri); + continue; + } + + var expandedGlob = Glob.ExpandNames(globOrUri).ToList(); + if (expandedGlob.Count == 0) + { + System.Console.WriteLine($"No matches for glob {globOrUri}"); + Environment.Exit(1); + } + + uris.AddRange(expandedGlob); + } var namespaceMap = namespaces.Select(n => ParseNamespace(n, namespacePrefix)).ToNamespaceProvider(key => { @@ -150,7 +167,7 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l if (verbose) { generator.Log = s => System.Console.Out.WriteLine(s); } - generator.Generate(files); + generator.Generate(uris); } static KeyValuePair ParseNamespace(string nsArg, string namespacePrefix) From d2ca92cba1fc4fb6658905f4dc4b074d3c423b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Verdier?= Date: Tue, 10 Sep 2019 13:00:27 +0200 Subject: [PATCH 2/2] Make error message more user friendly --- XmlSchemaClassGenerator.Console/Program.cs | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/XmlSchemaClassGenerator.Console/Program.cs b/XmlSchemaClassGenerator.Console/Program.cs index dbeeabb8..773ab244 100644 --- a/XmlSchemaClassGenerator.Console/Program.cs +++ b/XmlSchemaClassGenerator.Console/Program.cs @@ -98,23 +98,23 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l return; } - var uris = new List(); - foreach (var globOrUri in globsAndUris) - { - if (Uri.IsWellFormedUriString(globOrUri, UriKind.Absolute)) - { - uris.Add(globOrUri); - continue; - } - - var expandedGlob = Glob.ExpandNames(globOrUri).ToList(); - if (expandedGlob.Count == 0) - { - System.Console.WriteLine($"No matches for glob {globOrUri}"); - Environment.Exit(1); - } - - uris.AddRange(expandedGlob); + var uris = new List(); + foreach (var globOrUri in globsAndUris) + { + if (Uri.IsWellFormedUriString(globOrUri, UriKind.Absolute)) + { + uris.Add(globOrUri); + continue; + } + + var expandedGlob = Glob.ExpandNames(globOrUri).ToList(); + if (expandedGlob.Count == 0) + { + System.Console.WriteLine($"No files found for '{globOrUri}'"); + Environment.Exit(1); + } + + uris.AddRange(expandedGlob); } var namespaceMap = namespaces.Select(n => ParseNamespace(n, namespacePrefix)).ToNamespaceProvider(key =>