private static void WriteDefaultValuesForEmptyParameters(SyncToolParameters result) { if (string.IsNullOrEmpty(result.FolderPath)) { return; } result.ServerUri = @"http://212.143.31.81:8080/tfs"; if (string.IsNullOrEmpty(result.User) || string.IsNullOrEmpty(result.Password)) { result.User = @"OLIVESOFT\Automation"; result.Password = "******"; } if (string.IsNullOrEmpty(result.Comment)) { result.Comment = $"Source Control Update -{Path.GetFileName(result.FolderPath)} - {DateTime.Now.ToString("D", new CultureInfo("en-US"))}"; } }
private static SyncToolParameters GetParametersFromArguments(string[] arguments) { var result = new SyncToolParameters(); for (int i = 0; i < arguments.Length; i++) { switch (arguments[i].ToLower()) { case "f": i++; result.FolderPath = arguments[i]; break; case "u": i++; result.User = arguments[i]; if (!result.User.StartsWith("OLIVESOFT")) { result.User = ($"OLIVESOFT\\{result.User}"); } break; case "p": i++; result.Password = arguments[i]; break; case "c": i++; result.Comment = arguments[i]; break; } } return(result); }
//static void Main(string[] args) // for tests //{ // ILogger logger = new ConsoleLogger(); // GitSourceControlProvider pro = new GitSourceControlProvider("https://github.com/CagdasTrials/Trials.git", "CagdasTrials","---", logger); // pro.LoadWorkspace(@"D:\GitRepos\RepoX"); // pro.DeleteServerItemsWhichHaveNoLocalItems(); // string xx = ""; //} static void Main(string[] args) { var logger = new ConsoleLogger(); if (args.Length < 1) { logger.LogError("Invalid arguments - at least path to folder is required"); return; } if (args[0] == "?") { WriteHelpInfo(); return; } SyncToolParameters parameters = GetParameters(args); if (string.IsNullOrEmpty(parameters.FolderPath)) { logger.LogError("Folder parameter (f) should be specified."); return; } if (Directory.Exists(parameters.FolderPath) == false) { logger.LogError($"Folder {parameters.FolderPath} does not exist"); return; } ISourceControlProvider provider; bool useGit = false; if (string.IsNullOrEmpty(parameters.SourceControl)) { if (parameters.SourceControl.ToLower() == "git") { useGit = true; } } if (useGit) { try { provider = new GitSourceControlProvider( parameters.ServerUri, parameters.User, parameters.Password, logger ); } catch (Exception e) { logger.LogError(e.Message); return; } } else { try { provider = new TfsSourceControlProvider( parameters.ServerUri, parameters.User, parameters.Password, logger ); } catch (TeamFoundationServerUnauthorizedException) { logger.LogError("Could not connect to Source Control with providere credentials"); return; } } var merger = new DifferencesMerger(provider, logger); try { StringBuilder log = new StringBuilder(); merger.MergeDifferencesInFolder(parameters.FolderPath, parameters.Comment, log); } catch (Exception ex) { logger.LogError(ex.Message); } }