Added build info

This commit is contained in:
alexey
2025-03-17 00:36:18 +03:00
parent f04f926bd8
commit e6c5742ea4
8 changed files with 201 additions and 3 deletions

72
app.rb
View File

@@ -9,6 +9,7 @@ Gem.paths = {
require "rubygems"
require "sinatra"
require "puma"
require "ptools"
require_relative "classes/config"
require_relative "classes/gitinfo"
@@ -46,6 +47,7 @@ get "/" do
@repos_number = repo_data.length
@rcp_number = db.get_recips.length
@prj_number = prj.get_projects.length
@rpm_number = db.get_rpms.length
erb :index
end
end
@@ -510,7 +512,11 @@ get "/prjgitf/:id/:git_id" do
end
end
else
@file_content = File.readlines(f_path)
if File.binary?(f_path)
@file_content = ["Двоичный файл"]
else
@file_content = File.readlines(f_path)
end
@files_list = Dir[File.join(File.dirname(f_path), "*")].map do |item|
if File.directory?(item)
{ :file => item.delete_prefix(proj_path + "/"), :isdir => true }
@@ -873,6 +879,70 @@ get "/rpminfo/:rpm_id" do
end
end
get "/builds" do
@page_name = "Список всех сборок"
builds_lst = db.get_builds
if params["p"].nil?
@page = 1
else
@page = params["p"].to_i
if @page < 1
@page = 1
else
@page = @page + 1
end
end
if builds_lst.nil?
builds_lst = []
end
items_per_page = cfg.get_items_per_page
@builds_list = builds_lst[(@page - 1) * items_per_page, items_per_page]
@max_pages = builds_lst.length / items_per_page
if (@max_pages * items_per_page) != builds_lst.length
@max_pages = @max_pages + 1
end
erb :buildslist
end
get "/buildinfof/:build_id" do
build_info = db.get_build_info(params["build_id"])
if build_info.nil?
print_error_page(503, "Сборки не сущестует")
else
if build_info[:result] == 0
redirect url("/buildinfo/#{params["build_id"].to_i}")
else
result_path = build_info[:logpath]
if File.exist?(result_path)
@logs_list = get_log_paths_success(result_path)
@process_log = File.join(result_path, "process.log")
@rpm_list = db.get_rpms_for_build(params["build_id"])
unless params["file"].nil?
file_name = params["file"]
else
file_name = @process_log
end
unless File.exist?(file_name)
print_error_page(503, "Запрашиваемый файл отсутствует")
else
@file_content = []
File.readlines(file_name).last(100).each do |line|
@file_content << line
end
@file_disp = File.basename(file_name)
@file_disp_raw = file_name
@build_id = params["build_id"]
@repo = db.get_repo_info_by_id(build_info[:repo_id])
@proj = db.proj(build_info[:proj_id])
erb :buildinfo
end
else
print_error_page(503, "Для данной сборки уже не существует результатов")
end
end
end
end
not_found do
status 404
@page_name = "Кто-то потерялся"