/// <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/"); }
public void TestExecuteWithStdout() { var process = new BucketProcessExecutor(); process.Execute("echo foo && echo bar", out string stdout); StringAssert.Contains(stdout, "foo"); StringAssert.Contains(stdout, "bar"); }
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()); }
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); }