//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); } }
static void Main(string[] args) { CommandLine.Parser.Default.ParseArguments <Options>(args) .WithParsed(opts => { if (!Directory.Exists(opts.WorkingDirectory)) { Console.Error.WriteLine($"Directory {opts.WorkingDirectory} is invalid."); return; } string solutionPath = opts.SolutionPath; if (!Path.IsPathRooted(opts.SolutionPath)) { solutionPath = Path.Combine(opts.WorkingDirectory, opts.SolutionPath); } if (!File.Exists(solutionPath)) { Console.Error.WriteLine($"File {solutionPath} does not exist."); return; } Console.WriteLine(CommandLine.Text.HeadingInfo.Default); Console.WriteLine(CommandLine.Text.CopyrightInfo.Default); Console.WriteLine(); IOutputFormatter formatter = new ConsoleOutputFormatter(); if (!string.IsNullOrEmpty(opts.OutputPath)) { formatter = new PrettyOutputFormatter(opts.OutputPath); } Console.WriteLine("Analyzing changes..."); DateTime now = DateTime.Now; var provider = new GitSourceControlProvider(opts.WorkingDirectory); var analyzer = new Analyzer <string>(provider, solutionPath, opts.CommitId); analyzer.OpenSolution(); formatter.WriteHeading(opts.SolutionPath, opts.CommitId, provider.GetTimestamp(opts.CommitId)); var changedStyles = analyzer.GetChangedStyles(); formatter.WriteChangedAssets("stylesheets", changedStyles); formatter.AppendSectionBreak(); var changedScripts = analyzer.GetChangedScripts(); formatter.WriteChangedAssets("JavaScripts", changedScripts); formatter.AppendSectionBreak(); if (opts.IncludeChangedMethodSignatures) { var changedMethods = analyzer.GetChangedMethodSignatures(); formatter.WriteChangedMethods(changedMethods); formatter.AppendSectionBreak(); } var referencingProjects = analyzer.GetReferencingProjects(); formatter.WriteReferencingProjects(referencingProjects); formatter.WriteFooter(); Console.WriteLine($"Elapsed time: {DateTime.Now - now}"); }); }