public void AnalyzeRepository(string repository, bool verbose) { // validate arguments ConsolePrinter.Log("Analyzing file system path '{0}'", repository); if (String.IsNullOrWhiteSpace(repository)) { throw new CommandLineException(AnalyzeCommandResources.AnalyzeCommandRepositoryRequired); } // get all the solutions in this directory IEnumerable <FileInfo> solutions = GetSolutionsInDirectory(repository); // analyze each solution foreach (FileInfo solution in solutions) { if (verbose) { ConsolePrinter.Log("Solution '{0}' in folder '{1}'", solution.Name, solution.DirectoryName); } else { ConsolePrinter.Log("Solution '{0}'", solution.Name); } AnalyzePackagesRepository(solution, verbose); } }
internal void AnalyzePackagesRepository(FileInfo solution, bool verbose) { if (solution.Directory == null) { return; } //TODO: packages path might be configurable string repositoriesConfigPath = Path.Combine(solution.Directory.FullName, @"packages\repositories.config"); if (File.Exists(repositoriesConfigPath)) { FileInfo repositoriesConfig = new FileInfo(repositoriesConfigPath); IEnumerable <string> relativePackagesConfigPaths; using (var repositoriesConfigStream = File.OpenRead(repositoriesConfig.FullName)) { relativePackagesConfigPaths = configInterpreter.GetRelativePackagesConfigPathsFromRepositoriesConfig( XDocument.Load(repositoriesConfigStream)); } if (relativePackagesConfigPaths != null) { foreach (string relativePackagesConfigPath in relativePackagesConfigPaths) { FileInfo packagesConfig = fileSystemPathTranslator.GetAbsolutePath(repositoriesConfig, relativePackagesConfigPath); string projectName = GetProjectNameForPackagesConfig(solution, repositoriesConfig, packagesConfig); if (!string.IsNullOrWhiteSpace(projectName)) { if (verbose) { ConsolePrinter.Log(" -- Project '{0}' in folder '{1}'", projectName, packagesConfig.DirectoryName); } else { ConsolePrinter.Log(" -- Project '{0}'", projectName); } } using (var packagesConfigStream = File.OpenRead(packagesConfig.FullName)) { IEnumerable <PackageDependency> packageDependencies = configInterpreter.GetPackageDependenciesFromPackagesConfig(XDocument.Load(packagesConfigStream)); ConsolePrinter.PrintPackageDependenciesForProject(packageDependencies, verbose); } } } } }
private void AnalyzeTfsTeamProjectCollection(KeyValuePair <TfsTeamProjectCollection, ReadOnlyCollection <CatalogNode> > teamProjectCollectionKvp, bool verbose) { TfsTeamProjectCollection tpc = teamProjectCollectionKvp.Key; ConsolePrinter.Log("Team Project Collection '{0}'", tpc.Name); // Note: this requires a dependency to Microsoft.TeamFoundation.VersionControl.Client. Really needed? VersionControlServer vcs = tpc.GetService <VersionControlServer>(); TeamProject[] teamProjects = vcs.GetAllTeamProjects(true); foreach (TeamProject teamProject in teamProjects) { ConsolePrinter.Log(" -- Team Project '{0}'", teamProject.Name); AnalyzeTfsTeamProject(teamProject, verbose); } }
public void AnalyzeRepository(string repository, bool verbose) { ConsolePrinter.Log("Analyzing TFS Source Control on server '{0}'", repository); if (String.IsNullOrWhiteSpace(repository)) { throw new CommandLineException(AnalyzeCommandResources.AnalyzeCommandRepositoryRequired); } Uri tfsUri = new Uri(repository); TfsConfigurationServer tfs = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri, new UICredentialsProvider()); tfs.EnsureAuthenticated(); IDictionary <TfsTeamProjectCollection, ReadOnlyCollection <CatalogNode> > teamProjectCollectionInfo = GetTeamProjectCollectionsWithTeamProjectCatalogNodes(tfs); foreach (KeyValuePair <TfsTeamProjectCollection, ReadOnlyCollection <CatalogNode> > teamProjectCollectionKvp in teamProjectCollectionInfo) { AnalyzeTfsTeamProjectCollection(teamProjectCollectionKvp, verbose); } }