diff options
author | Alberto Sartori <alberto.sartori@huawei.com> | 2022-07-27 12:36:49 +0200 |
---|---|---|
committer | Alberto Sartori <alberto.sartori@huawei.com> | 2022-07-27 12:36:49 +0200 |
commit | b45653fac48af05a03a09271959b7f51fdeb5b83 (patch) | |
tree | 8f9cab3452bb657f8b2785d0c4b90769311732a1 /src | |
parent | 719a65d40bb721aa9e089539105a6771a124f58f (diff) | |
download | justbuild-b45653fac48af05a03a09271959b7f51fdeb5b83.tar.gz |
install-cas now accepts --log-limit and --log-file
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/common/cli.hpp | 10 | ||||
-rw-r--r-- | src/buildtool/main/main.cpp | 10 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/buildtool/common/cli.hpp b/src/buildtool/common/cli.hpp index 4e1d86da..a95cac5f 100644 --- a/src/buildtool/common/cli.hpp +++ b/src/buildtool/common/cli.hpp @@ -24,8 +24,11 @@ struct CommonArguments { std::optional<std::filesystem::path> workspace_root{}; std::optional<std::filesystem::path> repository_config{}; std::optional<std::string> main{}; - std::optional<std::filesystem::path> log_file{}; std::size_t jobs{std::max(1U, std::thread::hardware_concurrency())}; +}; + +struct LogArguments { + std::optional<std::filesystem::path> log_file{}; LogLevel log_limit{kDefaultLogLevel}; }; @@ -119,6 +122,11 @@ static inline auto SetupCommonArguments( clargs->jobs, "Number of jobs to run (Default: Number of cores).") ->type_name("NUM"); +} + +static inline auto SetupLogArguments( + gsl::not_null<CLI::App*> const& app, + gsl::not_null<LogArguments*> const& clargs) { app->add_option( "-f,--log-file", clargs->log_file, "Path to local log file.") ->type_name("PATH"); diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index 4c977955..e9f2d72c 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -56,6 +56,7 @@ enum class SubCommand { struct CommandLineArguments { SubCommand cmd{SubCommand::kUnknown}; CommonArguments common; + LogArguments log; AnalysisArguments analysis; DiagnosticArguments diagnose; EndpointArguments endpoint; @@ -72,6 +73,7 @@ auto SetupDescribeCommandArguments( gsl::not_null<CommandLineArguments*> const& clargs) { SetupCommonArguments(app, &clargs->common); SetupAnalysisArguments(app, &clargs->analysis, false); + SetupLogArguments(app, &clargs->log); } /// \brief Setup arguments for sub command "just analyse". @@ -79,6 +81,7 @@ auto SetupAnalyseCommandArguments( gsl::not_null<CLI::App*> const& app, gsl::not_null<CommandLineArguments*> const& clargs) { SetupCommonArguments(app, &clargs->common); + SetupLogArguments(app, &clargs->log); SetupAnalysisArguments(app, &clargs->analysis); SetupEndpointArguments(app, &clargs->endpoint); SetupDiagnosticArguments(app, &clargs->diagnose); @@ -90,6 +93,7 @@ auto SetupBuildCommandArguments( gsl::not_null<CLI::App*> const& app, gsl::not_null<CommandLineArguments*> const& clargs) { SetupCommonArguments(app, &clargs->common); + SetupLogArguments(app, &clargs->log); SetupAnalysisArguments(app, &clargs->analysis); SetupEndpointArguments(app, &clargs->endpoint); SetupBuildArguments(app, &clargs->build); @@ -119,6 +123,7 @@ auto SetupInstallCasCommandArguments( SetupCompatibilityArguments(app); SetupEndpointArguments(app, &clargs->endpoint); SetupFetchArguments(app, &clargs->fetch); + SetupLogArguments(app, &clargs->log); } /// \brief Setup arguments for sub command "just traverse". @@ -126,6 +131,7 @@ auto SetupTraverseCommandArguments( gsl::not_null<CLI::App*> const& app, gsl::not_null<CommandLineArguments*> const& clargs) { SetupCommonArguments(app, &clargs->common); + SetupLogArguments(app, &clargs->log); SetupEndpointArguments(app, &clargs->endpoint); SetupGraphArguments(app, &clargs->graph); // instead of analysis SetupBuildArguments(app, &clargs->build); @@ -209,7 +215,7 @@ void SetupDefaultLogging() { LogConfig::SetSinks({LogSinkCmdLine::CreateFactory()}); } -void SetupLogging(CommonArguments const& clargs) { +void SetupLogging(LogArguments const& clargs) { LogConfig::SetLogLimit(clargs.log_limit); if (clargs.log_file) { LogConfig::AddSink(LogSinkFile::CreateFactory( @@ -1444,7 +1450,7 @@ auto main(int argc, char* argv[]) -> int { return kExitSuccess; } - SetupLogging(arguments.common); + SetupLogging(arguments.log); if (arguments.analysis.expression_log_limit) { Evaluator::SetExpressionLogLimit( *arguments.analysis.expression_log_limit); |