Added list configurations

master
alexey 1 month ago
parent d608f73772
commit d278cda22d

@ -262,6 +262,27 @@ post "/rcpcreate" do
end
end
get "/bldcfg" do
@page_name = "Список конфигураций сборки"
hide_list = cfg.get_configs_hide
select_list = cfg.get_configs_selected
@list_global = Dir["/etc/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }.reject { |item| check_partname_in_array(item[1], hide_list) }
@list_local = Dir["~/.config/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }
@list_selected = (@list_global + @list_local).select { |item| check_partname_in_array(item[1], select_list) }
erb :cfgslist
end
get "/bldcfginfo" do
@filename = params["info"]
if @filename.nil?
print_error_page(503, "Не задано имя конфигурационного файла")
else
@page_name = @filename
@content = File.readlines(@filename)
erb :cfgsinfo
end
end
not_found do
status 404
@page_name = "Кто-то потерялся"

@ -38,4 +38,20 @@ class IniConfig
"db"
end
end
def get_configs_hide()
unless @config["configs"]["hide"].nil?
@config["configs"]["hide"].split(",").map { |item| item.strip }
else
[]
end
end
def get_configs_selected()
unless @config["configs"]["selected"].nil?
@config["configs"]["selected"].split(",").map { |item| item.strip }
else
[]
end
end
end

@ -13,3 +13,14 @@ def sanitize_rcptname(filename)
sanitized.gsub!(/^_+|_+$/, "")
sanitized
end
def check_partname_in_array(filename, search_array)
fnd = false
search_array.each do |item|
if filename.include?(item)
fnd = true
break
end
end
fnd
end

@ -3,4 +3,12 @@ port = 8081
db = "sqlite://db/workbase.sqlite3"
[repo]
repo = "repo"
repo = "repo"
[projects]
path = "projects"
old = 3
[configs]
hide=open,amazon,anolis,circle,custom,euro,fedora,mageia,navy,alma,rocky
selected=msvsphere

@ -0,0 +1,21 @@
<%= erb :header %>
<div class="container">
<h3 class="text-center"><%= @filename %></h3>
<div class="container border bg-light pb-2 pt-2 text-secondary">
<% @content.each do |line| %>
<% if line =~ /^include\(/
dn = File.dirname(@filename)
result = line.match /^include\s*\('(?<fl>\S+)'\)/
if result.nil?
%>
<p class="p-0 m-0"><%= line %></p>
<% else link = File.join(dn, result[:fl]) %>
<p class="p-0 m-0"><a href="/bldcfginfo?info=<%= ERB::Util.url_encode(link) %>" class="link-dark link-underline-secondary"><%= line %></a></p>
<% end
else %>
<p class="p-0 m-0"><%= line %></p>
<% end %>
<% end %>
</div>
</div>
<%= erb :footer %>

@ -0,0 +1,29 @@
<%= erb :header %>
<div class="container text-center">
<h2 class="pb-5">Список доступных конфигураций</h2>
<h3 class="pb-2 text-danger">Избранные</h3>
<div class="row gap-3">
<% @list_selected.each do |item| %>
<div class="col-3 bg-info rounded-4">
<a href="/bldcfginfo?info=<%= ERB::Util.url_encode(item[2]) %>" class="link-light"><%= item[1] %></a>
</div>
<% end %>
</div>
<h3 class="p-3 text-danger">Локальные</h3>
<div class="row gap-3">
<% @list_local.each do |item| %>
<div class="col-3 bg-primary rounded-4">
<a href="/bldcfginfo?info=<%= ERB::Util.url_encode(item[2]) %>" class="link-light"><%= item[1] %></a>
</div>
<% end %>
</div>
<h3 class="p-3 text-danger">Глобальные</h3>
<div class="row gap-3">
<% @list_global.each do |item| %>
<div class="col-3 bg-success rounded-4">
<a href="/bldcfginfo?info=<%= ERB::Util.url_encode(item[2]) %>" class="link-light"><%= item[1] %></a>
</div>
<% end %>
</div>
</div>
<%= erb :footer %>

@ -40,6 +40,10 @@
<span class="p-1">
<a href="/rpms">rpm-пакеты</a>
</span>
<span>|</span>
<span class="p-1">
<a href="/bldcfg">build-окружения</a>
</span>
</div>
</div>
<div class="container">

@ -88,4 +88,16 @@
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-6" style="padding: 12px;">
<div class="card" style="background: rgb(227,227,227);border-radius: 15px;">
<div class="card-body">
<h4 class="card-title">Окружения сборки</h4>
<p class="card-text">Список всех доступных окружений сборки</p><a class="card-link" href="/bldcfg">Перейти к списку достпуных окружений</a>
</div>
</div>
</div>
</div>
</div>
<%= erb :footer %>
Loading…
Cancel
Save