From 482a586b6e11fff72795341dc864ff3f6aa6caa8 Mon Sep 17 00:00:00 2001 From: Alexey Berezhok Date: Thu, 4 Dec 2025 23:18:15 +0300 Subject: [PATCH] Added clean mock cache --- app.rb | 8 ++++++++ classes/mock.rb | 6 ++++++ classes/utilities.rb | 5 +++++ views/buildsclean.erb | 23 +++++++++++++++++++++++ views/footer.erb | 1 + 5 files changed, 43 insertions(+) create mode 100644 views/buildsclean.erb diff --git a/app.rb b/app.rb index 159a9cb..562c6c6 100644 --- a/app.rb +++ b/app.rb @@ -1438,6 +1438,14 @@ get "/sanitize" do erb :sanitize end +get "/buildsclean" do + @page_name = "Очистка окружений сборок" + mock_cache_path = "/var/cache/mock/" + @list_cleaned = get_dirs_in_mock_cache(mock_cache_path) + MockManager.clean_mock + erb :buildsclean +end + not_found do status 404 @page_name = "Кто-то потерялся" diff --git a/classes/mock.rb b/classes/mock.rb index 8e9db8a..d497e28 100644 --- a/classes/mock.rb +++ b/classes/mock.rb @@ -321,4 +321,10 @@ class MockManager @db.after_fork end + + def self.clean_mock + cmd_args = %Q(/usr/bin/mock --scrub-all-chroots) + cmd = Runner.new(cmd_args) + cmd.run_clean + end end diff --git a/classes/utilities.rb b/classes/utilities.rb index d801df5..18ec825 100644 --- a/classes/utilities.rb +++ b/classes/utilities.rb @@ -54,3 +54,8 @@ end def get_rpms_list(directory) Dir.glob(File.join(directory, "**", "*.rpm")).reject { |f| File.directory?(f) || f =~ /repodata\// }.map { |f| f.delete_prefix(directory + "/") } end + +def get_dirs_in_mock_cache(dir_path) + Dir.glob(File.join(dir_path, "*")).select { |f| File.directory?(f) }.map{ |f| File.basename(f) } +end + diff --git a/views/buildsclean.erb b/views/buildsclean.erb new file mode 100644 index 0000000..618aa84 --- /dev/null +++ b/views/buildsclean.erb @@ -0,0 +1,23 @@ +<%= erb :header %> +
+
+
+
+
+
+
Подчистка окружений сборок произошла успешно
+
+
+

Ни один проект не был очищен, очищены только окружения сборок. Это значит, что следующая сборка будет длится дольше, но некоторые ошибки накопившиеся в кэше сборки будут устранены

+
    + <% @list_cleaned.each do |item| %> +
  • <%= item %>
  • + <% end %> +
+
+
+
+
+
+
+<%= erb :footer %> \ No newline at end of file diff --git a/views/footer.erb b/views/footer.erb index 47f702e..7fa6a04 100644 --- a/views/footer.erb +++ b/views/footer.erb @@ -7,6 +7,7 @@
  • Документация
  • Разработка
  • Подчистка
  • +
  • Сбросить buildroots