void PackageManager::ProgressTransactionCommitted(InstalledRepository& repository, const char* transactionDirectoryName) { printf("[%s] Changes applied. Old activation state backed up in \"%s\"\n", repository.Name().String(), transactionDirectoryName); printf("[%s] Cleaning up ...\n", repository.Name().String()); }
void PackageManager::_PrintResult(InstalledRepository& installationRepository) { if (!installationRepository.HasChanges()) return; printf(" in %s:\n", installationRepository.Name().String()); PackageList& packagesToActivate = installationRepository.PackagesToActivate(); PackageList& packagesToDeactivate = installationRepository.PackagesToDeactivate(); for (int32 i = 0; BSolverPackage* package = packagesToActivate.ItemAt(i); i++) { printf(" install package %s from repository %s\n", package->Info().FileName().String(), package->Repository()->Name().String()); } for (int32 i = 0; BSolverPackage* package = packagesToDeactivate.ItemAt(i); i++) { printf(" uninstall package %s\n", package->VersionedName().String()); } // TODO: Print file/download sizes. Unfortunately our package infos don't // contain the file size. Which is probably correct. The file size (and possibly // other information) should, however, be provided by the repository cache in // some way. Extend BPackageInfo? Create a BPackageFileInfo? }
void PackageManager::_PrintResult(InstalledRepository& installationRepository) { if (!installationRepository.HasChanges()) return; printf(" in %s:\n", installationRepository.Name().String()); PackageList& packagesToActivate = installationRepository.PackagesToActivate(); PackageList& packagesToDeactivate = installationRepository.PackagesToDeactivate(); BStringList upgradedPackages; for (int32 i = 0; BSolverPackage* installPackage = packagesToActivate.ItemAt(i); i++) { for (int32 j = 0; BSolverPackage* uninstallPackage = packagesToDeactivate.ItemAt(j); j++) { if (installPackage->Info().Name() == uninstallPackage->Info().Name()) { upgradedPackages.Add(installPackage->Info().Name()); break; } } } for (int32 i = 0; BSolverPackage* package = packagesToActivate.ItemAt(i); i++) { BString repository; if (dynamic_cast<MiscLocalRepository*>(package->Repository()) != NULL) repository = "local file"; else repository.SetToFormat("repository %s", package->Repository()->Name().String()); if (upgradedPackages.HasString(package->Info().Name())) { printf(" upgrade package %s to %s from %s\n", package->Info().Name().String(), package->Info().Version().ToString().String(), repository.String()); } else { printf(" install package %s-%s from %s\n", package->Info().Name().String(), package->Info().Version().ToString().String(), repository.String()); } } for (int32 i = 0; BSolverPackage* package = packagesToDeactivate.ItemAt(i); i++) { if (upgradedPackages.HasString(package->Info().Name())) continue; printf(" uninstall package %s\n", package->VersionedName().String()); } // TODO: Print file/download sizes. Unfortunately our package infos don't // contain the file size. Which is probably correct. The file size (and possibly // other information) should, however, be provided by the repository cache in // some way. Extend BPackageInfo? Create a BPackageFileInfo? }
bool PackageManager::_AddResults(InstalledRepository& repository, ResultWindow* window) { if (!repository.HasChanges()) return false; return window->AddLocationChanges(repository.Name(), repository.PackagesToActivate(), fPackagesAddedByUser, repository.PackagesToDeactivate(), fPackagesRemovedByUser); }
bool PackageManager::_AddResults(InstalledRepository& repository, ResultWindow* window) { if (!repository.HasChanges()) return false; ProblemWindow::SolverPackageSet installPackages; ProblemWindow::SolverPackageSet uninstallPackages; if (fCurrentInstallPackage != NULL) installPackages.insert(fCurrentInstallPackage); if (fCurrentUninstallPackage != NULL) uninstallPackages.insert(fCurrentUninstallPackage); return window->AddLocationChanges(repository.Name(), repository.PackagesToActivate(), installPackages, repository.PackagesToDeactivate(), uninstallPackages); }
void PackageManager::ProgressTransactionCommitted(InstalledRepository& repository, const BCommitTransactionResult& result) { const char* repositoryName = repository.Name().String(); int32 issueCount = result.CountIssues(); for (int32 i = 0; i < issueCount; i++) { const BTransactionIssue* issue = result.IssueAt(i); if (issue->PackageName().IsEmpty()) { printf("[%s] warning: %s\n", repositoryName, issue->ToString().String()); } else { printf("[%s] warning: package %s: %s\n", repositoryName, issue->PackageName().String(), issue->ToString().String()); } } printf("[%s] Changes applied. Old activation state backed up in \"%s\"\n", repositoryName, result.OldStateDirectory().String()); printf("[%s] Cleaning up ...\n", repositoryName); }
void PackageManager::ProgressApplyingChangesDone(InstalledRepository& repository) { printf("[%s] Done.\n", repository.Name().String()); }
void PackageManager::ProgressStartApplyingChanges(InstalledRepository& repository) { printf("[%s] Applying changes ...\n", repository.Name().String()); }