public void GetFilesWithExtension_ReturnsFilesAtSpecifiedSubDirectoryAndItsSubDirectories_IfSubDirectorySearchIsTrue() { // Arrange var expected1 = Path.Combine(_rootDirPath, "a", "a1.txt"); var expected2 = Path.Combine(_rootDirPath, "a", "aa", "aa1.txt"); var sourceRepo = new LocalSourceRepo(_rootDirPath, NullLoggerFactory.Instance); // Act var files = sourceRepo.EnumerateFiles( "*.txt", searchSubDirectories: true, subDirectoryToSearchUnder: "a"); // Assert Assert.NotNull(files); Assert.Equal(2, files.Count()); Assert.Contains(expected1, files); Assert.Contains(expected2, files); }
public void Detect_ReturnsNull_WhenSourceDirectoryIsEmpty() { // Arrange var version = "100.100.100"; var detector = CreatePythonPlatformDetector( supportedPythonVersions: new[] { version }, defaultVersion: version, new PythonScriptGeneratorOptions()); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); // No files in source directory var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
public void Detect_ReutrnsNull_WhenRequirementsFileDoesNotExist() { // Arrange var version = "100.100.100"; var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { version }, defaultVersion: version); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "foo.py content", "foo.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
public void Detect_ReturnsResult_WithPythonDefaultVersion_WhenNoRuntimeTextFileExists() { // Arrange var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { Common.PythonVersions.Python37Version }); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "content", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "foo.py content", "foo.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); // Act var result = detector.Detect(repo); // Assert Assert.NotNull(result); Assert.Equal("python", result.Language); Assert.Equal(Common.PythonVersions.Python37Version, result.LanguageVersion); }
public void Detect_Throws_WhenUnsupportedPythonVersion_FoundInRuntimeFile() { // Arrange var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { Common.PythonVersions.Python37Version }); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "python-100.100.100", PythonConstants.RuntimeFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); // Act & Assert var exception = Assert.Throws <UnsupportedVersionException>(() => detector.Detect(repo)); Assert.Equal( "Target Python version '100.100.100' is unsupported. " + $"Supported versions are: {Common.PythonVersions.Python37Version}", exception.Message); }
public void Detect_ReutrnsResult_WhenNoPyFileExists_ButRuntimeTextFileExists_HavingPythonVersionInIt() { // Arrange var detector = CreatePythonLanguageDetector(supportedPythonVersions: new[] { Common.PythonVersions.Python37Version }); var sourceDir = CreateNewDir(); // No file with a '.py' extension CreateFile(sourceDir, "", "requirements.txt"); CreateFile(sourceDir, $"python-{Common.PythonVersions.Python37Version}", "runtime.txt"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); // Act var result = detector.Detect(repo); // Assert Assert.NotNull(result); Assert.Equal("python", result.Language); Assert.Equal(Common.PythonVersions.Python37Version, result.LanguageVersion); }
public void Detect_ReutrnsResult_WhenOnlyRequirementsTextFileExists_ButNoPyOrRuntimeFileExists() { // Arrange var detector = CreatePythonPlatformDetector(new PythonScriptGeneratorOptions()); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); // No files with '.py' or no runtime.txt file IOHelpers.CreateFile(sourceDir, "requirements.txt content", PythonConstants.RequirementsFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Null(result.PlatformVersion); }
public void Detect_ReturnsNullVersion_IfNoVersionFoundFromApp_OrOptions() { // Arrange var detector = CreatePythonPlatformDetector(); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "", "app.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal("python", result.Platform); Assert.Null(result.PlatformVersion); }
internal override int Execute(IServiceProvider serviceProvider, IConsole console) { if (string.IsNullOrWhiteSpace(PlatformName)) { console.Error.WriteLine("Platform name is required."); return(ProcessConstants.ExitFailure); } string appPath = Path.GetFullPath(AppDir); ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var sourceRepo = new LocalSourceRepo(appPath, loggerFactory); var options = new RunScriptGeneratorOptions { SourceRepo = sourceRepo, PlatformVersion = PlatformVersion, PassThruArguments = RemainingArgs }; var runScriptGenerator = serviceProvider.GetRequiredService <IRunScriptGenerator>(); var script = runScriptGenerator.GenerateBashScript(PlatformName, options); if (string.IsNullOrEmpty(script)) { console.Error.WriteLine("Error: Couldn't generate startup script."); return(ProcessConstants.ExitFailure); } if (string.IsNullOrWhiteSpace(OutputPath)) { console.WriteLine(script); } else { File.WriteAllText(OutputPath, script); console.WriteLine($"Script written to '{OutputPath}'"); // Try making the script executable ProcessHelper.TrySetExecutableMode(OutputPath); } return(ProcessConstants.ExitSuccess); }
public void Detect_ReutrnsNull_WhenRequirementsTextFileExists_ButNoPyOrRuntimeFileExists() { // Arrange var version = "100.100.100"; var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { version }, defaultVersion: version); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); // No files with '.py' or no runtime.txt file IOHelpers.CreateFile(sourceDir, "requirements.txt content", PythonConstants.RequirementsFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
public void Detect_ReturnsDefaultVersion_IfNoVersionFoundFromApp_OrOptions() { // Arrange var expectedVersion = "1.2.3"; var platform = CreatePlatform(defaultVersion: expectedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "", "app.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = platform.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Equal(expectedVersion, result.PlatformVersion); }
public void Detect_ReutrnsNull_WhenRuntimeTextFileExists_ButDoesNotTextInExpectedFormat(string fileContent) { // Arrange var supportedVersion = "1.2.3"; var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { supportedVersion }, defaultVersion: supportedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, fileContent, "runtime.txt"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
public void Detect_ReturnsResult_WithPythonDefaultVersion_WhenNoRuntimeTextFileExists() { // Arrange var expectedVersion = "1.2.3"; var platform = CreatePlatform(defaultVersion: expectedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "content", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "foo.py content", "foo.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = platform.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Equal(expectedVersion, result.PlatformVersion); }
public void ReadFile_ReturnsConentOfTheFileRequested() { // Arrange-1 var sourceRepo = new LocalSourceRepo(_rootDirPath, NullLoggerFactory.Instance); // Act-1 var exists = sourceRepo.FileExists("subDir1", "subDir2", "file1.txt"); // Assert-1 Assert.True(exists); // Arrange-2 var expected = $"file in {Path.Combine(_rootDirPath, "subDir1", "subDir2")}"; // Act-2 var content = sourceRepo.ReadFile("subDir1", "subDir2", "file1.txt"); // Assert-2 Assert.Equal(expected, content); }
public void Detect_ReutrnsResult_WhenDotPyFilesExistInSubFolders() { // Arrange var detector = CreatePythonPlatformDetector(new PythonScriptGeneratorOptions()); var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString("N"))) .FullName; var subDir = Directory.CreateDirectory(Path.Combine(sourceDir, Guid.NewGuid().ToString("N"))).FullName; IOHelpers.CreateFile(subDir, "foo.py content", "foo.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Null(result.PlatformVersion); }
public void Detect_ReturnsVersionFromRuntimeTextFile(string expectedVersion) { // Arrange var detector = CreatePythonPlatformDetector(); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "", "app.py"); IOHelpers.CreateFile(sourceDir, $"python-{expectedVersion}", PythonConstants.RuntimeFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Equal(expectedVersion, result.PlatformVersion); }
public void Detect_ReutrnsResult_WhenComposerFileDoesNotExist_ButFilesWithPhpExtensionExist() { // Arrange var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString())) .FullName; File.WriteAllText(Path.Combine(sourceDir, "foo.php"), "php file content"); var repo = new LocalSourceRepo(sourceDir); var detector = CreatePhpPlatformDetector(); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PhpConstants.PlatformName, result.Platform); Assert.Equal(string.Empty, result.AppDirectory); Assert.Null(result.PlatformVersion); }
public void Detect_ReturnsResult_WhenValidCondaEnvironmentFileExists(string environmentFileName) { // Arrange var detector = CreatePythonPlatformDetector(); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "channels:", environmentFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert var pythonPlatformResult = Assert.IsType <PythonPlatformDetectorResult>(result); Assert.Equal(PythonConstants.PlatformName, pythonPlatformResult.Platform); Assert.Null(pythonPlatformResult.PlatformVersion); Assert.False(pythonPlatformResult.HasJupyterNotebookFiles); Assert.True(pythonPlatformResult.HasCondaEnvironmentYmlFile); }
public void Detect_ReturnsNull_WhenCustomRequirementsFileDoesNotExist() { // Arrange var options = new DetectorOptions { CustomRequirementsTxtPath = "foo/requirements.txt", }; var detector = CreatePythonPlatformDetector(options); var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString("N"))) .FullName; IOHelpers.CreateFile(sourceDir, "foo==1.1", "requirements.txt"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
public void Detect_ReturnsResult_WhenNoPyFileExists_ButRuntimeTextFileExists_HavingPythonVersionInIt() { // Arrange var expectedVersion = "1000.1000.1000"; var detector = CreatePythonPlatformDetector(); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); // No file with a '.py' extension IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, $"python-{expectedVersion}", "runtime.txt"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Equal(expectedVersion, result.PlatformVersion); }
internal override int Execute(IServiceProvider serviceProvider, IConsole console) { if (string.IsNullOrWhiteSpace(PlatformName)) { console.WriteLine("Platform name is required."); return(ProcessConstants.ExitFailure); } AppPath = string.IsNullOrWhiteSpace(AppPath) ? "." : AppPath; string appFullPath = Path.GetFullPath(AppPath); string defaultAppFullPath = string.IsNullOrWhiteSpace(DefaultApp) ? null : Path.GetFullPath(DefaultApp); ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var sourceRepo = new LocalSourceRepo(appFullPath, loggerFactory); var options = new RunScriptGeneratorOptions { CustomServerCommand = ServerCmd, DebuggingMode = DebugMode, DebugPort = DebugPort, DefaultAppPath = defaultAppFullPath, SourceRepo = sourceRepo, UserStartupCommand = UserStartupCommand, PlatformVersion = PlatformVersion, BindPort = BindPort, }; var runScriptGenerator = serviceProvider.GetRequiredService <IRunScriptGenerator>(); var script = runScriptGenerator.GenerateBashScript(PlatformName, options); if (string.IsNullOrEmpty(script)) { console.WriteLine("Couldn't generate startup script."); return(ProcessConstants.ExitFailure); } else { File.WriteAllText(OutputPath, script); console.WriteLine($"Script written to '{OutputPath}'"); } return(ProcessConstants.ExitSuccess); }
public void GetFilesWithExtension_ReturnsFilesAtAllDirectories_IfSubDirectorySearchIsTrue() { // Arrange var expected1 = Path.Combine(_rootDirPath, "a", "a1.txt"); var expected2 = Path.Combine(_rootDirPath, "a", "aa", "aa1.txt"); var expected3 = Path.Combine(_rootDirPath, "b", "b1.txt"); var expected4 = Path.Combine(_rootDirPath, "b", "bb", "bb1.txt"); var expected5 = Path.Combine(_rootDirPath, "root1.txt"); var sourceRepo = new LocalSourceRepo(_rootDirPath, NullLoggerFactory.Instance); // Act var files = sourceRepo.EnumerateFiles("*.txt", searchSubDirectories: true); // Assert Assert.NotNull(files); Assert.Equal(5, files.Count()); Assert.Contains(expected1, files); Assert.Contains(expected2, files); Assert.Contains(expected3, files); Assert.Contains(expected4, files); Assert.Contains(expected5, files); }
public void Detect_ReutrnsResult_WhenRepoHasFileWithSupportedJavaExtensions(string extension) { // Arrange var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString())) .FullName; File.WriteAllText(Path.Combine(sourceDir, $"main.{extension}"), "file content here"); var repo = new LocalSourceRepo(sourceDir); var detector = CreateJavaDetector(); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert var javaPlatformDetectorResult = Assert.IsType <JavaPlatformDetectorResult>(result); Assert.Equal(JavaConstants.PlatformName, javaPlatformDetectorResult.Platform); Assert.False(javaPlatformDetectorResult.UsesMaven); Assert.False(javaPlatformDetectorResult.UsesMavenWrapperTool); Assert.Null(javaPlatformDetectorResult.PlatformVersion); }
public void Detect_ReturnsDefaultVersionOfVersionProvider_IfNoVersionFoundFromApp_OrEnvVariable() { // Arrange var expectedVersion = "1.2.3"; var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { "100.100.100", "2.5.0", expectedVersion }, defaultVersion: expectedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "", "app.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal("python", result.Language); Assert.Equal(expectedVersion, result.LanguageVersion); }
public void Detect_Throws_WhenUnsupportedPythonVersion_FoundInRuntimeFile() { // Arrange var unsupportedVersion = "100.100.100"; var supportedVersion = "1.2.3"; var platform = CreatePlatform( supportedVersions: new[] { supportedVersion }, defaultVersion: supportedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "python-" + unsupportedVersion, PythonConstants.RuntimeFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act & Assert var exception = Assert.Throws <UnsupportedVersionException>(() => platform.Detect(context)); Assert.Equal( $"Platform 'python' version '{unsupportedVersion}' is unsupported. " + $"Supported versions: {supportedVersion}", exception.Message); }
public void Detect_ReturnsResult_WhenOnlyMajorAndMinorVersion_AreSpecifiedInRuntimeTxtFile() { // Arrange var runtimeTxtVersion = "1.2"; var expectedVersion = "1.2.3"; var detector = CreatePythonLanguageDetector( supportedPythonVersions: new[] { "100.100.100", "1.2.1r", expectedVersion }, defaultVersion: expectedVersion); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, $"python-{runtimeTxtVersion}", PythonConstants.RuntimeFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal("python", result.Language); Assert.Equal(expectedVersion, result.LanguageVersion); }
public void Detect_ReturnsResult_WithPythonDefaultVersion_WhenNoRuntimeTextFileExists() { // Arrange var expectedVersion = "1.2.3"; var detector = CreatePythonPlatformDetector( supportedPythonVersions: new[] { "100.100.100", expectedVersion }, defaultVersion: expectedVersion, new PythonScriptGeneratorOptions()); var sourceDir = IOHelpers.CreateTempDir(_tempDirRoot); IOHelpers.CreateFile(sourceDir, "content", PythonConstants.RequirementsFileName); IOHelpers.CreateFile(sourceDir, "foo.py content", "foo.py"); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal("python", result.Platform); Assert.Equal(expectedVersion, result.PlatformVersion); }
public void Detect_ReutrnsResult_WhenRequirementsFileExistsAtRoot_AndDeepProbingIsDisabled() { // Arrange var options = new DetectorOptions { DisableRecursiveLookUp = true, }; var detector = CreatePythonPlatformDetector(options); var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString("N"))) .FullName; IOHelpers.CreateFile(sourceDir, "foo==1.1", PythonConstants.RequirementsFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.NotNull(result); Assert.Equal(PythonConstants.PlatformName, result.Platform); Assert.Null(result.PlatformVersion); }
public void Detect_ReturnsNull_WhenDotPyFilesExistInSubFolders_AndDeepProbingIsDisabled() { // Arrange var options = new DetectorOptions { DisableRecursiveLookUp = true, }; var detector = CreatePythonPlatformDetector(options); var sourceDir = Directory.CreateDirectory(Path.Combine(_tempDirRoot, Guid.NewGuid().ToString("N"))) .FullName; var subDir = Directory.CreateDirectory(Path.Combine(sourceDir, Guid.NewGuid().ToString("N"))).FullName; IOHelpers.CreateFile(subDir, "foo.py content", "foo.py"); IOHelpers.CreateFile(subDir, "foo==1.1", PythonConstants.RequirementsFileName); var repo = new LocalSourceRepo(sourceDir, NullLoggerFactory.Instance); var context = CreateContext(repo); // Act var result = detector.Detect(context); // Assert Assert.Null(result); }
internal override int Execute(IServiceProvider serviceProvider, IConsole console) { ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var sourceRepo = new LocalSourceRepo(this.AppDir, loggerFactory); var ctx = new RunScriptGeneratorContext { SourceRepo = sourceRepo, Platform = this.PlatformName, PlatformVersion = this.PlatformVersion, PassThruArguments = this.RemainingArgs, }; var runScriptGenerator = serviceProvider.GetRequiredService <IRunScriptGenerator>(); var script = runScriptGenerator.GenerateBashScript(ctx); if (string.IsNullOrEmpty(script)) { console.WriteErrorLine("Couldn't generate startup script."); return(ProcessConstants.ExitFailure); } if (string.IsNullOrWhiteSpace(this.OutputPath)) { console.WriteLine(script); } else { File.WriteAllText(this.OutputPath, script); console.WriteLine($"Script written to '{this.OutputPath}'"); // Try making the script executable ProcessHelper.TrySetExecutableMode(this.OutputPath); } return(ProcessConstants.ExitSuccess); }