Exemple #1
0
        public void DeleteDirectoriesUnderPath()
        {
            var testRoot = Path.Combine(Path.GetTempPath(), "Glob", "PathTraverserTests", "DeleteDirectoriesUnderPath");

            try
            {
                CreateFiles(testRoot, "ab/bin/a.cs ab/bin/sub/a.cs a/taco.cs b/taco.cs b/ab/a/hat.taco");

                // Verify files exist before
                Assert.True(File.Exists(Path.Combine(testRoot, "a/taco.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/taco.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/ab/a/hat.taco")));
                Assert.True(File.Exists(Path.Combine(testRoot, "ab/bin/a.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "ab/bin/sub/a.cs")));

                foreach (var dir in Glob.Directories(testRoot, "**/bin"))
                {
                    var path = Path.Combine(testRoot, dir);
                    Directory.Delete(path, true);
                }

                // Verify bin folder was deleted but nothing else
                Assert.True(File.Exists(Path.Combine(testRoot, "a/taco.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/taco.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/ab/a/hat.taco")));
                Assert.False(File.Exists(Path.Combine(testRoot, "ab/bin/a.cs")));
                Assert.False(File.Exists(Path.Combine(testRoot, "ab/bin/sub/a.cs")));
            }
            finally
            {
                // Cleanup test
                Directory.Delete(testRoot, true);
            }
        }
Exemple #2
0
        public void StarStarDirectories()
        {
            Action <string> AssertEqual(string expected) => actual => Assert.Equal(expected, actual);

            var testRoot = Path.Combine(Path.GetTempPath(), "Glob", "PathTraverserTests", "StarStarDirectories");

            try
            {
                CreateFiles(testRoot, "ab/bin/a.cs ab/bin/sub/a.cs a/taco.cs b/taco.cs b/ab/a/hat.taco");

                // Verify files exist before
                Assert.True(File.Exists(Path.Combine(testRoot, "a/taco.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "ab/bin/a.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "ab/bin/sub/a.cs")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/ab/a/hat.taco")));
                Assert.True(File.Exists(Path.Combine(testRoot, "b/taco.cs")));

                Assert.Collection(Glob.Directories(testRoot, "**").OrderBy(x => x),
                                  AssertEqual(""),
                                  AssertEqual("a"),
                                  AssertEqual("ab"),
                                  AssertEqual(Path.Combine("ab", "bin")),
                                  AssertEqual(Path.Combine("ab", "bin", "sub")),
                                  AssertEqual("b"),
                                  AssertEqual(Path.Combine("b", "ab")),
                                  AssertEqual(Path.Combine("b", "ab", "a"))
                                  );
            }
            finally
            {
                // Cleanup test
                Directory.Delete(testRoot, true);
            }
        }
Exemple #3
0
    static void Main(string[] args)
    {
        Target(Clean,
               ForEach("**/bin", "**/obj"),
               dir =>
        {
            IEnumerable <string> GetDirectories(string d)
            {
                return(Glob.Directories(".", d));
            }

            void RemoveDirectory(string d)
            {
                if (Directory.Exists(d))
                {
                    Console.WriteLine(d);
                    Directory.Delete(d, true);
                }
            }

            foreach (var d in GetDirectories(dir))
            {
                RemoveDirectory(d);
            }
        });

        Target(Build, ForEach("net46", "netstandard2.0", "netstandard2.1"),
               framework =>
        {
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && framework == "net46")
            {
                return;
            }
            Run("dotnet", "build src/SharpCompress/SharpCompress.csproj -c Release");
        });

        Target(Test, DependsOn(Build), ForEach("netcoreapp3.1"),
               framework =>
        {
            IEnumerable <string> GetFiles(string d)
            {
                return(Glob.Files(".", d));
            }

            foreach (var file in GetFiles("**/*.Test.csproj"))
            {
                Run("dotnet", $"test {file} -c Release -f {framework} --no-restore --no-build");
            }
        });

        Target(Publish, DependsOn(Test),
               () =>
        {
            Run("dotnet", "pack src/SharpCompress/SharpCompress.csproj -c Release -o artifacts/");
        });

        Target("default", DependsOn(Publish), () => Console.WriteLine("Done!"));

        RunTargetsAndExit(args);
    }
Exemple #4
0
        public IEnumerable <string> GetDirectories(IEnumerable <Pattern> patterns)
        {
            var root = new DirectoryInfo(Root);

            return(patterns
                   .Where(p => !string.IsNullOrWhiteSpace(p.Value))
                   .Select(p => p.Value.Replace("\\", "/"))
                   .Select(p => Glob.Directories(root, p, GlobOptions.CaseInsensitive | GlobOptions.Compiled))
                   .SelectMany(p => p)
                   .Select(p => p.FullName));
        }
    static void Main(string[] args)
    {
        Target(Clean,
               ForEach("publish", "**/bin", "**/obj"),
               dir =>
        {
            IEnumerable <string> GetDirectories(string d)
            {
                return(Glob.Directories(".", d));
            }

            void RemoveDirectory(string d)
            {
                if (Directory.Exists(d))
                {
                    Console.WriteLine($"Cleaning {d}");
                    Directory.Delete(d, true);
                }
            }

            foreach (var d in GetDirectories(dir))
            {
                RemoveDirectory(d);
            }
        });

        Target(Build, () => Run("dotnet", "build . -c Release"));

        Target(Test, DependsOn(Build),
               () =>
        {
            IEnumerable <string> GetFiles(string d)
            {
                return(Glob.Files(".", d));
            }

            foreach (var file in GetFiles("tests/**/*.csproj"))
            {
                Run("dotnet", $"test {file} -c Release --no-restore --no-build --verbosity=normal");
            }
        });

        Target(Publish, DependsOn(Test),
               ForEach("src/Conduit"),
               project =>
        {
            Run("dotnet",
                $"publish {project} -c Release -f netcoreapp3.1 -o ./publish --no-restore --no-build --verbosity=normal");
        });

        Target("default", DependsOn(Publish), () => Console.WriteLine("Done!"));
        RunTargetsAndExit(args);
    }
Exemple #6
0
        /// <summary>
        /// Finds the directories matching the specified globs.
        /// </summary>
        /// <param name="directory">The starting directory.</param>
        /// <param name="globs">The globs to match.</param>
        /// <returns>The paths of the matching directories.</returns>
        public static IReadOnlyList <string> FindDirectoriesFrom(string directory, params string[] globs)
        {
            if (directory == null)
            {
                throw new ArgumentNullException(nameof(directory));
            }
            if (globs == null)
            {
                throw new ArgumentNullException(nameof(globs));
            }

            return(globs.SelectMany(glob => Glob.Directories(directory, glob, GlobOptions.CaseInsensitive)).Distinct().Select(path => Path.Combine(directory, path)).ToList());
        }
Exemple #7
0
 /// <summary>
 /// Finds the directories matching the specified globs.
 /// </summary>
 /// <param name="directory">The starting directory.</param>
 /// <param name="globs">The globs to match.</param>
 /// <returns>The paths of the matching directories.</returns>
 public static IReadOnlyList <string> FindDirectoriesFrom(string directory, params string[] globs) =>
 globs.SelectMany(glob => Glob.Directories(directory, glob, GlobOptions.CaseInsensitive)).Distinct().Select(path => Path.Combine(directory, path)).ToList();
Exemple #8
0
        public static IReadOnlyCollection <string> GlobDirectories(string directory, params string[] patterns)
        {
            var directoryInfo = new DirectoryInfo(directory);

            return(patterns.SelectMany(x => Glob.Directories(directoryInfo, x, GlobOptions)).Select(x => x.FullName).ToList());
        }
 static IEnumerable <string> GetDirectories(string d)
 {
     return(Glob.Directories(".", d));
 }
Exemple #10
0
 private static IEnumerable <BiDirectory> FindPatternMatchedDirectories()
 {
     return(Glob.Directories(Directory.GetCurrentDirectory(), "**/*.enc")
            .Select(path => new BiDirectory(path)));
 }
        /// <summary>
        /// Gets all directories matching glob pattern.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="directory"></param>
        /// <param name="globPattern"></param>
        /// <returns></returns>
        public static List <FullPath> GetDirectories(string directory, GlobOptions globOptions = GlobOptions.None, params string[] globPattern)
        {
            var directoryInfo = new DirectoryInfo(directory);

            return(globPattern.SelectMany(pattern => Glob.Directories(directoryInfo, pattern, globOptions)).Select(x => new FullPath(x.FullName)).ToList());
        }