//public int InternalCompare(KeyValuePair<Guid, List<Guid>> x, KeyValuePair<Guid, List<Guid>> y) //{ // if (y.Value.Contains(x.Key)) // { // return 1; // } // if (x.Value.Contains(y.Key)) // { // return -1; // } // return x.Key.CompareTo(y.Key); //} //public int Compare(KeyValuePair<Guid, List<Guid>> x, KeyValuePair<Guid, List<Guid>> y) //{ // var result = InternalCompare(x,y); // if (result == 0) // { // Console.WriteLine($"{x.Key.ToString().ToUpperInvariant()}={y.Key.ToString().ToUpperInvariant()}"); // } // else if (result < 0) // { // Console.WriteLine($"{x.Key.ToString().ToUpperInvariant()}<{y.Key.ToString().ToUpperInvariant()}"); // } // else // { // Console.WriteLine($"{x.Key.ToString().ToUpperInvariant()}>{y.Key.ToString().ToUpperInvariant()}"); // } // return result; //} public static void Main(string[] args) { Console.Error.WriteLine("Dot Net Build Mapping Tool"); Console.Error.WriteLine($"Version: {Assembly.GetExecutingAssembly().GetName().Version}"); var me = new CreateOrder(); var runParameters = new RunParameters(); foreach (var arg in args) { runParameters.PathList.Add(arg); } if (Console.IsInputRedirected) { using (var reader = new StreamReader(Console.OpenStandardInput())) { while (!reader.EndOfStream) { runParameters.PathList.Add(reader.ReadLine()); } } } me.Run(runParameters); }
public void AssemblyProjectList(RunParameters runParameters) { foreach (var path in runParameters.PathList) { string workingPath = XPlatHelper.FullyNormalizePath(Directory.GetCurrentDirectory(), path); if (workingPath.EndsWith(".sln", StringComparison.OrdinalIgnoreCase)) { this.SolutionFileParsers.Add(new SolutionFileParser(workingPath)); } else { this.ProjectFiles.Add(new ProjectFileReference(workingPath)); } } }
public void Run(RunParameters runParameters) { AssemblyProjectList(runParameters); ParseSolutionFiles(); AddIndependentProjectFiles(); ResolveAllProjectReferences(); DetermineProjectBuildGroups(); WriteProjectListOutput(); //Dictionary<Guid, List<Guid>> orderMap = new Dictionary<Guid, List<Guid>>(); //using (var stream = File.OpenRead(args[0])) //using (var reader = new StreamReader(stream)) //{ // while (!reader.EndOfStream) // { // var line = reader.ReadLine(); // var parts = line.Split("->"); // var project = Guid.Parse(parts[0]); // var dependency = Guid.Parse(parts[1]); // if (!orderMap.TryGetValue(project, out var dependencies)) // { // dependencies = new List<Guid>(); // orderMap.Add(project, dependencies); // } // dependencies.Add(dependency); // } //} //var ordered = orderMap.ToList(); //ordered.Sort(this); //foreach (var pair in ordered) //{ // foreach(var item in pair.Value) // { // Console.WriteLine($"{pair.Key.ToString().ToUpperInvariant()}->{item.ToString().ToUpperInvariant()}"); // } //} }