summaryrefslogtreecommitdiff
path: root/src/buildtool/main/retry.cpp
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-04-17 12:52:42 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-04-18 15:51:28 +0200
commit8744b30b9612354b42474b2a1fb323fce5d182c1 (patch)
tree3526b4c3694791ecfd84c94e3809d25d9bf25b9d /src/buildtool/main/retry.cpp
parent3e19cd959774ccb09df97e8dd96d5bacfff57ca3 (diff)
downloadjustbuild-8744b30b9612354b42474b2a1fb323fce5d182c1.tar.gz
Move retry-related CLI parts into separate libraries
... to simplify reuse.
Diffstat (limited to 'src/buildtool/main/retry.cpp')
-rw-r--r--src/buildtool/main/retry.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/buildtool/main/retry.cpp b/src/buildtool/main/retry.cpp
new file mode 100644
index 00000000..f2ba4b3a
--- /dev/null
+++ b/src/buildtool/main/retry.cpp
@@ -0,0 +1,53 @@
+// Copyright 2024 Huawei Cloud Computing Technology Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "src/buildtool/main/retry.hpp"
+
+#ifdef BOOTSTRAP_BUILD_TOOL
+
+[[nodiscard]] auto SetupRetryConfig(RetryArguments const& args) -> bool {
+ return true;
+}
+
+#else
+
+#include "src/buildtool/common/remote/retry_parameters.hpp"
+#include "src/buildtool/logging/log_level.hpp"
+#include "src/buildtool/logging/logger.hpp"
+
+[[nodiscard]] auto SetupRetryConfig(RetryArguments const& args) -> bool {
+ if (args.max_attempts) {
+ if (!Retry::SetMaxAttempts(*args.max_attempts)) {
+ Logger::Log(LogLevel::Error, "Invalid value for max-attempts.");
+ return false;
+ }
+ }
+ if (args.initial_backoff_seconds) {
+ if (!Retry::SetInitialBackoffSeconds(*args.initial_backoff_seconds)) {
+ Logger::Log(LogLevel::Error,
+ "Invalid value for initial-backoff-seconds.");
+ return false;
+ }
+ }
+ if (args.max_backoff_seconds) {
+ if (!Retry::SetMaxBackoffSeconds(*args.max_backoff_seconds)) {
+ Logger::Log(LogLevel::Error,
+ "Invalid value for max-backoff-seconds.");
+ return false;
+ }
+ }
+ return true;
+}
+
+#endif // BOOTSTRAP_BUILD_TOOL