]> git.tdb.fi Git - builder.git/blobdiff - source/buildercli.cpp
Improve help output for the local package
[builder.git] / source / buildercli.cpp
index 2bea4ddad54d704404bacf73f18e1aa352d834ad..c7a2817ce4d6315ea99f33c3e414049c49f8b083 100644 (file)
@@ -149,7 +149,7 @@ BuilderCLI::BuilderCLI(int argc, char **argv):
 
        package_manager.set_no_externals(no_externals);
 
-       builder.set_architecture(arch);
+       builder.set_architecture(tolower(arch));
 
        list<FS::Path> start_files;
        start_files.push_back(FS::get_sys_data_dir()/"builderrc");
@@ -191,7 +191,11 @@ int BuilderCLI::main()
 {
        FS::Path main_file = cwd/build_file;
        if(FS::exists(main_file))
+       {
                builder.load_build_file(main_file, &cmdline_options, conf_all);
+               if(!dry_run && !cmdline_options.empty())
+                       builder.save_caches();
+       }
        else if(!help)
        {
                IO::print(IO::cerr, "The file %s does not exist.\n", main_file);
@@ -286,6 +290,9 @@ int BuilderCLI::main()
        if(build)
                exit_code = builder.build(jobs, dry_run, show_progress);
 
+       if(!dry_run)
+               builder.save_caches();
+
        return exit_code;
 }
 
@@ -352,16 +359,22 @@ void BuilderCLI::package_help()
        SourcePackage &main_pkg = dynamic_cast<SourcePackage &>(package_manager.get_main_package());
        const Config &config = main_pkg.get_config();
        const Config::OptionMap &options = config.get_options();
-
-       IO::print("\nRequired packages:\n  ");
        const Package::Requirements &requires = main_pkg.get_required_packages();
-       for(Package::Requirements::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+
+       if(!requires.empty() || !options.empty())
+               IO::print("\nHelp for package %s:\n", main_pkg.get_name());
+
+       if(!requires.empty())
        {
-               if(i!=requires.begin())
-                       IO::print(", ");
-               IO::print((*i)->get_name());
+               IO::print("\nRequired packages:\n  ");
+               for(Package::Requirements::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+               {
+                       if(i!=requires.begin())
+                               IO::print(", ");
+                       IO::print((*i)->get_name());
+               }
+               IO::print("\n");
        }
-       IO::print("\n");
 
        if(!options.empty())
        {