pkgman: Make use of BRequest::Process()

This commit is contained in:
Ingo Weinhold
2013-04-20 13:28:36 +02:00
parent f71be99bd9
commit e0d4161d42
3 changed files with 30 additions and 54 deletions
+15 -24
View File
@@ -87,18 +87,13 @@ AddRepoCommand::Execute(int argc, const char* const* argv)
status_t result;
for (int i = 0; i < urlCount; ++i) {
AddRepositoryRequest addRequest(context, repoURLs[i], asUserRepository);
result = addRequest.InitCheck();
if (result != B_OK)
DIE(result, "unable to create request for adding repository");
result = addRequest.CreateInitialJobs();
if (result != B_OK)
DIE(result, "unable to create necessary jobs");
while (BJob* job = addRequest.PopRunnableJob()) {
result = job->Run();
delete job;
if (result == B_CANCELED)
return 1;
result = addRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for adding repository \"%s\" failed",
repoURLs[i]);
}
return 1;
}
// now refresh the repo-cache of the new repository
@@ -106,19 +101,15 @@ AddRepoCommand::Execute(int argc, const char* const* argv)
BPackageRoster roster;
BRepositoryConfig repoConfig;
roster.GetRepositoryConfig(repoName, &repoConfig);
BRefreshRepositoryRequest refreshRequest(context, repoConfig);
result = refreshRequest.InitCheck();
if (result != B_OK)
DIE(result, "unable to create request for refreshing repository");
result = refreshRequest.CreateInitialJobs();
if (result != B_OK)
DIE(result, "unable to create necessary jobs");
while (BJob* job = refreshRequest.PopRunnableJob()) {
result = job->Run();
delete job;
if (result == B_CANCELED)
return 1;
result = refreshRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for refreshing repository \"%s\" failed",
repoName.String());
}
return 1;
}
}
+7 -12
View File
@@ -85,18 +85,13 @@ DropRepoCommand::Execute(int argc, const char* const* argv)
status_t result;
DropRepositoryRequest dropRequest(context, repoName);
result = dropRequest.InitCheck();
if (result != B_OK)
DIE(result, "unable to create request for dropping repository");
result = dropRequest.CreateInitialJobs();
if (result != B_OK)
DIE(result, "unable to create necessary jobs");
while (BJob* job = dropRequest.PopRunnableJob()) {
result = job->Run();
delete job;
if (result == B_CANCELED)
return 1;
result = dropRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for dropping repository \"%s\" failed",
repoName);
}
return 1;
}
return 0;
+8 -18
View File
@@ -40,7 +40,6 @@ static const char* const kLongUsage =
DEFINE_COMMAND(RefreshCommand, "refresh", kShortUsage, kLongUsage)
int
RefreshCommand::Execute(int argc, const char* const* argv)
{
@@ -70,10 +69,6 @@ RefreshCommand::Execute(int argc, const char* const* argv)
const char* const* repoArgs = argv + optind;
int nameCount = argc - optind;
DecisionProvider decisionProvider;
JobStateListener listener;
BContext context(decisionProvider, listener);
BStringList repositoryNames(20);
BPackageRoster roster;
@@ -88,6 +83,10 @@ RefreshCommand::Execute(int argc, const char* const* argv)
}
}
DecisionProvider decisionProvider;
JobStateListener listener;
BContext context(decisionProvider, listener);
status_t result;
for (int i = 0; i < repositoryNames.CountStrings(); ++i) {
const BString& repoName = repositoryNames.StringAt(i);
@@ -99,20 +98,11 @@ RefreshCommand::Execute(int argc, const char* const* argv)
WARN(result, "skipping repository-config '%s'", path.Path());
continue;
}
BRefreshRepositoryRequest refreshRequest(context, repoConfig);
result = refreshRequest.InitCheck();
if (result != B_OK)
DIE(result, "unable to create request for refreshing repository");
result = refreshRequest.CreateInitialJobs();
if (result != B_OK)
DIE(result, "unable to create necessary jobs");
while (BJob* job = refreshRequest.PopRunnableJob()) {
result = job->Run();
delete job;
if (result != B_OK)
return 1;
}
BRefreshRepositoryRequest refreshRequest(context, repoConfig);
result = refreshRequest.Process();
if (result != B_OK)
DIE(result, "request for refreshing repository failed");
}
return 0;