]> git.tdb.fi Git - builder.git/commitdiff
Show configuration of all packages with --help --conf-all
authorMikko Rasa <tdb@tdb.fi>
Thu, 5 Oct 2023 09:39:33 +0000 (12:39 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 5 Oct 2023 09:39:49 +0000 (12:39 +0300)
Also other tweaks to help output.

source/cli/buildercli.cpp
source/cli/buildercli.h

index cfd367c9eeca01a021a8b0fa933de5641dd592c6..efb25899b53fd9fad4f0125c2b4629e400d42292 100644 (file)
@@ -339,12 +339,11 @@ void BuilderCLI::package_help()
                return;
 
        SourcePackage &main_pkg = dynamic_cast<SourcePackage &>(package_manager.get_main_package());
-       const Config &config = main_pkg.get_config();
-       const auto &options = config.get_options();
-       const Package::Requirements &required_pkgs = main_pkg.get_required_packages();
+       Package::Requirements required_pkgs;
+       main_pkg.collect_required_packages(required_pkgs);
 
-       if(!required_pkgs.empty() || !options.empty())
-               IO::print("\nHelp for package %s:\n", main_pkg.get_name());
+       IO::print("\nMain package: %s\n", main_pkg.get_name());
+       IO::print("Source directory: %s\n", main_pkg.get_source_directory());
 
        if(!required_pkgs.empty())
        {
@@ -358,9 +357,24 @@ void BuilderCLI::package_help()
                IO::print("\n");
        }
 
+       if(conf_all)
+       {
+               for(const Package *pkg: required_pkgs)
+                       if(const SourcePackage *spkg = dynamic_cast<const SourcePackage *>(pkg))
+                               config_help(*spkg);
+       }
+       else
+               config_help(main_pkg);
+}
+
+void BuilderCLI::config_help(const SourcePackage &pkg)
+{
+       const Config &config = pkg.get_config();
+       const auto &options = config.get_options();
+
        if(!options.empty())
        {
-               IO::print("\nPackage configuration:\n");
+               IO::print("\nConfiguration for package %s:\n", pkg.get_name());
                for(const auto &kvp: options)
                {
                        const Config::Option &opt = kvp.second;
index f4b2ad723d13006ffecdce81d6ce2c491e591be6..fcd65ae5f0c209dd36074c22e3d34b88da2bc046 100644 (file)
@@ -44,6 +44,7 @@ private:
        Target *resolve_target(const std::string &);
 
        void package_help();
+       void config_help(const SourcePackage &);
 };
 
 #endif