Exemple #1
0
        /// <summary>
        /// Whether the driver support the specified uri.
        /// </summary>
        /// <param name="io">The input/output instance.</param>
        /// <param name="config">The config instance.</param>
        /// <param name="uri">Thr specified uri.</param>
        /// <param name="deep">Whether is deep checker.</param>
        /// <returns>True if the driver is supported.</returns>
        public static bool IsSupport(IIO io, Config config, string uri, bool deep = false)
        {
            if (Regex.IsMatch(uri, @"(^git://|\.git/?$|git(?:olite)?@|//git\.|//github\.com/|//gitlib\.com/)", RegexOptions.IgnoreCase))
            {
                return(true);
            }

            bool ProcessCheck(string command, string cwd)
            {
                var process = new BucketProcessExecutor(io);

                return(process.Execute(command, cwd) == 0);
            }

            if (FileSystemLocal.IsLocalPath(uri))
            {
                uri = FileSystemLocal.GetPlatformPath(uri);
                if (!Directory.Exists(uri))
                {
                    return(false);
                }

                return(ProcessCheck("git tag", uri));
            }

            if (!deep)
            {
                return(false);
            }

            return(ProcessCheck($"git ls-remote --heads {ProcessExecutor.Escape(uri)}", null));
        }
        public void TestExecuteCapturesErrorOutput()
        {
            var process = new BucketProcessExecutor();

            process.Execute("unknow foo", out _, out string stderr);

            StringAssert.Contains(stderr, "unknow");
        }
        public void TestDoesntHidePorts()
        {
            var tester  = new TesterIOConsole();
            var process = new BucketProcessExecutor(tester.Mock(AbstractTester.OptionVerbosity(OutputOptions.VerbosityDebug)));

            process.Execute("echo https://localhost:1234/");

            StringAssert.Contains(tester.GetDisplay(), "Executing command (CWD): echo https://localhost:1234/");
        }
        public void TestHidenSensitive()
        {
            var tester  = new TesterIOConsole();
            var process = new BucketProcessExecutor(tester.Mock(AbstractTester.OptionVerbosity(OutputOptions.VerbosityDebug)));

            process.Execute("echo https://foo:[email protected]/ && echo http://[email protected] && echo http://abcdef1234567890234578:[email protected]/", out string stdout);

            StringAssert.Contains(tester.GetDisplay(), "Executing command (CWD): echo https://foo:***@example.org/ && echo http://[email protected] && echo http://***:***@github.com/");
        }
Exemple #5
0
        public void TestExecuteWithStdout()
        {
            var process = new BucketProcessExecutor();

            process.Execute("echo foo && echo bar", out string stdout);

            StringAssert.Contains(stdout, "foo");
            StringAssert.Contains(stdout, "bar");
        }
Exemple #6
0
        public void TestExecuteWithStdoutArray()
        {
            var process = new BucketProcessExecutor();

            process.Execute("echo foo && echo bar", out string[] stdout);

            Assert.AreEqual("foo", stdout[0].Trim());
            Assert.AreEqual("bar", stdout[1].Trim());
        }
Exemple #7
0
        public void TestExecuteWithStdoutStderr()
        {
            var process = new BucketProcessExecutor();

            process.Execute("echo foo", out string stdout, out string stderr);

            Assert.AreEqual("foo", stdout.Trim());
            Assert.AreEqual(string.Empty, stderr);
        }
        public void TestExecuteCapturesOutput()
        {
            var process = new BucketProcessExecutor();

            process.Execute("echo foo", out string stdout);

            Assert.AreEqual(
                @"foo
", stdout);
        }