]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
feat: Include maximum size/files in --print-stats
authorJoel Rosdahl <joel@rosdahl.net>
Thu, 3 Aug 2023 11:24:32 +0000 (13:24 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Thu, 3 Aug 2023 11:54:16 +0000 (13:54 +0200)
New output:

- max_cache_size_kibibyte: maximum size of local storage in KiB (0 for
  no limit)
- max_files_in_cache: maximum number of files in local storage (0 for no
  limit)

Closes #1315.

src/core/Statistics.cpp
src/core/Statistics.hpp
src/core/mainoptions.cpp

index df776d494f541f967d141298f75875bd4faba573..240fa13377bdadfb270cf1726a7afe64f14fc408 100644 (file)
@@ -511,19 +511,26 @@ Statistics::format_human_readable(const Config& config,
 }
 
 std::string
-Statistics::format_machine_readable(const util::TimePoint& last_updated) const
+Statistics::format_machine_readable(const Config& config,
+                                    const util::TimePoint& last_updated) const
 {
   std::vector<std::string> lines;
 
   lines.push_back(FMT("stats_updated_timestamp\t{}\n", last_updated.sec()));
 
+  auto add_line = [&](auto id, auto value) {
+    lines.push_back(FMT("{}\t{}\n", id, value));
+  };
+
   for (const auto& field : k_statistics_fields) {
     if (!(field.flags & FLAG_NEVER)) {
-      lines.push_back(
-        FMT("{}\t{}\n", field.id, m_counters.get(field.statistic)));
+      add_line(field.id, m_counters.get(field.statistic));
     }
   }
 
+  add_line("max_cache_size_kibibyte", config.max_size() / 1024);
+  add_line("max_files_in_cache", config.max_files());
+
   std::sort(lines.begin(), lines.end());
   return util::join(lines, "");
 }
index fcf27afcf6c2bb531afd76972fbded9f7ea0e01e..b2deab712785d39b422f07c8fab4a1aa2fad3562 100644 (file)
@@ -47,7 +47,8 @@ public:
 
   // Format cache statistics in machine-readable format.
   std::string
-  format_machine_readable(const util::TimePoint& last_updated) const;
+  format_machine_readable(const Config& config,
+                          const util::TimePoint& last_updated) const;
 
   const StatisticsCounters& counters() const;
 
index 2233962b08f04669d28199d7dfb2afd56f5489ff..312a17906bb17a95135807e6fdf9a17fac6f5cf3 100644 (file)
@@ -638,7 +638,8 @@ process_main_options(int argc, const char* const* argv)
       const auto [counters, last_updated] =
         storage::local::LocalStorage(config).get_all_statistics();
       Statistics statistics(counters);
-      PRINT_RAW(stdout, statistics.format_machine_readable(last_updated));
+      PRINT_RAW(stdout,
+                statistics.format_machine_readable(config, last_updated));
       break;
     }