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
+13 -22
View File
@@ -87,17 +87,12 @@ 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)
result = addRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for adding repository \"%s\" failed",
repoURLs[i]);
}
return 1;
}
@@ -106,18 +101,14 @@ 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)
BRefreshRepositoryRequest refreshRequest(context, repoConfig);
result = refreshRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for refreshing repository \"%s\" failed",
repoName.String());
}
return 1;
}
}
+6 -11
View File
@@ -85,17 +85,12 @@ 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)
result = dropRequest.Process(true);
if (result != B_OK) {
if (result != B_CANCELED) {
DIE(result, "request for dropping repository \"%s\" failed",
repoName);
}
return 1;
}
+7 -17
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;
BRefreshRepositoryRequest refreshRequest(context, repoConfig);
result = refreshRequest.Process();
if (result != B_OK)
return 1;
}
DIE(result, "request for refreshing repository failed");
}
return 0;