public void DeniesShouldDenyTheGivenFilenames()
 {
     _gitignore.Denies("test.swp").Should().BeTrue();
     _gitignore.Denies("node_modules/wat.js").Should().BeTrue();
     _gitignore.Denies("foo/bar.wat").Should().BeTrue();
     _gitignoreNoNegatives.Denies("node_modules/wat.js").Should().BeTrue();
 }
        private static void InternalListIgnoredFiles(GitIgnoreParser ignoreParser)
        {
            if (ignoreParser == null)
            {
                ColoredConsole.Error.WriteLine("No .funcignore file");
                return;
            }

            foreach (var file in GetFiles(Environment.CurrentDirectory).Select(f => f.Replace(Environment.CurrentDirectory, "").Trim(Path.DirectorySeparatorChar).Replace("\\", "/")))
            {
                if (ignoreParser.Denies(file))
                {
                    ColoredConsole.WriteLine(file);
                }
            }
        }
예제 #3
0
        public static IEnumerable <string> GetLocalFiles(string path, GitIgnoreParser ignoreParser = null, bool returnIgnored = false)
        {
            var ignoredDirectories = new[] { ".git", ".vscode" };
            var ignoredFiles       = new[] { ".funcignore", ".gitignore", "appsettings.json", "local.settings.json", "project.lock.json" };

            foreach (var file in FileSystemHelpers.GetFiles(path, ignoredDirectories, ignoredFiles))
            {
                if (preCondition(file))
                {
                    yield return(file);
                }
            }

            bool preCondition(string file)
            {
                var fileName = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar).Replace("\\", "/");

                return((returnIgnored ? ignoreParser?.Denies(fileName) : ignoreParser?.Accepts(fileName)) ?? true);
            }
        }