diff --git a/app.rb b/app.rb index 800a228..e6df777 100644 --- a/app.rb +++ b/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 = "Кто-то потерялся" diff --git a/classes/config.rb b/classes/config.rb index 2819853..0aa800c 100644 --- a/classes/config.rb +++ b/classes/config.rb @@ -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 diff --git a/classes/utilities.rb b/classes/utilities.rb index ca4b704..3cdc14b 100644 --- a/classes/utilities.rb +++ b/classes/utilities.rb @@ -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 diff --git a/config.ini b/config.ini index b00456b..a2734dc 100644 --- a/config.ini +++ b/config.ini @@ -3,4 +3,12 @@ port = 8081 db = "sqlite://db/workbase.sqlite3" [repo] -repo = "repo" \ No newline at end of file +repo = "repo" + +[projects] +path = "projects" +old = 3 + +[configs] +hide=open,amazon,anolis,circle,custom,euro,fedora,mageia,navy,alma,rocky +selected=msvsphere \ No newline at end of file diff --git a/views/cfgsinfo.erb b/views/cfgsinfo.erb new file mode 100644 index 0000000..24f527a --- /dev/null +++ b/views/cfgsinfo.erb @@ -0,0 +1,21 @@ +<%= erb :header %> +
<%= line %>
+ <% else link = File.join(dn, result[:fl]) %> + + <% end + else %> +<%= line %>
+ <% end %> + <% end %> +