diff --git a/VERSION b/VERSION index c02858e..313e3c8 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,6 @@ +0.4-3 +* Исправлена ошибка при обнаружении некорректного Changelog + 0.4-2 * Добавлена возможность создания снимков неподписанного репозитория * Добавлена возможность управлять снимками репозитория diff --git a/app.rb b/app.rb index ed4b55e..a9f3ce0 100644 --- a/app.rb +++ b/app.rb @@ -434,7 +434,7 @@ get "/prjclean/:id" do @proj_id = prj_info[:id] @proj_public = prj_info[:public] @proj_tmpbuild = prj_info[:tmpstpbuild] - + erb :prjclean1 end end @@ -500,7 +500,7 @@ get "/prjclean_step3/:id" do if prj.path.nil? print_error_page(503, "Путь к проектам не существует") else - if params["numb"].to_i > 0 + if params["numb"].to_i > 0 prj_info = prj.get_project(params["id"]) @page_name = prj_info[:projname] @proj_name = prj_info[:projname] @@ -523,7 +523,7 @@ get "/prjclean_step3/:id" do if f_name =~ /\.src\.rpm$/ p_name = "#{rpm_info[:pkginfo].name}_src" end - if rpm_result_list[p_name].nil? + if rpm_result_list[p_name].nil? rpm_result_list[p_name] = [[rpm_info[:pkginfo], item, rpm_info[:pkginfo].version]] else rpm_result_list[p_name] << [rpm_info[:pkginfo], item, rpm_info[:pkginfo].version] @@ -543,8 +543,8 @@ get "/prjclean_step3/:id" do else rpm_list_stay << item end - - end + + end rpm_result_list.each_pair do |k, v| v.each do |item| rpm_list_stay << item[1] @@ -1231,10 +1231,15 @@ get "/prjrpm/:id" do @file_content << "Версия пакета: #{rpm_info.version}" @file_content << "" @file_content << "Changelog:" - rpm_info.changelog.first(10).each do |entry| - @file_content << "#{entry.time} #{entry.name}" - @file_content << "#{entry.text}" - @file_content << "---------------" + begin + rpm_info.changelog.first(10).each do |entry| + @file_content << "#{entry.time} #{entry.name}" + @file_content << "#{entry.text}" + @file_content << "---------------" + end + rescue + # Если есть ошибка с undefined local variable or method, пропускаем changelog + @file_content << "Changelog недоступен" end @file_content << "---------------" @file_content << "Файлы:" @@ -1707,7 +1712,7 @@ post "/prjsnap_delete/:id" do if prj_info.nil? print_error_page(503, "Путь к проектам не существует") else - + end end end @@ -1774,7 +1779,7 @@ post "/prjsnap_restore/:id" do if prj_info.nil? print_error_page(503, "Путь к проектам не существует") else - + end end end @@ -1810,7 +1815,7 @@ get "/sanitize" do erb :sanitize end -get "/buildsclean" do +get "/buildsclean" do @page_name = "Очистка окружений сборок" mock_cache_path = "/var/cache/mock/" @list_cleaned = get_dirs_in_mock_cache(mock_cache_path) diff --git a/classes/repomanage.rb b/classes/repomanage.rb index 873e064..8697d5c 100644 --- a/classes/repomanage.rb +++ b/classes/repomanage.rb @@ -104,7 +104,11 @@ class RepoManager pkg_info[:pname] = "noname" if info[:error].nil? pkg_info[:chlog] = [] - pkg_info[:chlog] << info[:pkginfo].changelog.first + begin + pkg_info[:chlog] << info[:pkginfo].changelog.first + rescue + pkg_info[:chlog] << "Change log error" + end pkg_info[:pname] = info[:pkginfo].name else pkg_info[:chlog] = [] @@ -133,7 +137,7 @@ class RepoManager data_keys << key.to_s end - + data_keys.sort! data_keys.each do |item| repo_data << [lresult[item], item] @@ -145,7 +149,7 @@ class RepoManager { fname: record[:fname], stat: record[:stat] } end.sort_by do |item| [item[:stat], item[:fname].downcase.ord] - end.reverse.map do |record| + end.reverse.map do |record| if record[:stat].nil? ["нет даты", record[:fname]] else