Added list configurations
This commit is contained in:
21
app.rb
21
app.rb
@@ -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
|
||||
|
||||
@@ -4,3 +4,11 @@ db = "sqlite://db/workbase.sqlite3"
|
||||
|
||||
[repo]
|
||||
repo = "repo"
|
||||
|
||||
[projects]
|
||||
path = "projects"
|
||||
old = 3
|
||||
|
||||
[configs]
|
||||
hide=open,amazon,anolis,circle,custom,euro,fedora,mageia,navy,alma,rocky
|
||||
selected=msvsphere
|
||||
21
views/cfgsinfo.erb
Normal file
21
views/cfgsinfo.erb
Normal file
@@ -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 %>
|
||||
29
views/cfgslist.erb
Normal file
29
views/cfgslist.erb
Normal file
@@ -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 %>
|
||||
Reference in New Issue
Block a user