public static IEnumerable DiscoverTemplatesAndParametersInDirectory()

in src/Analyzer.Utilities/TemplateDiscovery.cs [46:77]


        public static IEnumerable<TemplateAndParams> DiscoverTemplatesAndParametersInDirectory(DirectoryInfo directory, ILogger logger = null)
        {
            var armTemplates = directory.GetFiles(
                "*.json",
                new EnumerationOptions
                {
                    MatchCasing = MatchCasing.CaseInsensitive,
                    RecurseSubdirectories = true
                })
                .Where(s => !s.Name.Contains(".parameters"))
                .Where(IsValidTemplate)
                .ToList();

            var bicepTemplates = directory.GetFiles(
                "*.bicep",
                new EnumerationOptions
                {
                    MatchCasing = MatchCasing.CaseInsensitive,
                    RecurseSubdirectories = true
                })
                .ToList();

            var pairsToAnalyze =
                armTemplates
                .Concat(bicepTemplates)
                .SelectMany(FindParameterFilesForTemplate)
                .ToList();

            logger?.LogInformation("Discovered {count} template-parameter pairs to analyze", pairsToAnalyze.Count);

            return pairsToAnalyze;
        }