diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-04-17 12:52:42 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-04-18 15:51:28 +0200 |
commit | 8744b30b9612354b42474b2a1fb323fce5d182c1 (patch) | |
tree | 3526b4c3694791ecfd84c94e3809d25d9bf25b9d /src/buildtool/main/retry.cpp | |
parent | 3e19cd959774ccb09df97e8dd96d5bacfff57ca3 (diff) | |
download | justbuild-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.cpp | 53 |
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 |