You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Подключаем файл utilities.rb для использования его методов
require_relative "utilities"
# Класс ConfigsList для работы со списком конфигураций
class ConfigsList
# Определение свойств класса
attr :error, :cfg
# Конструктор класса с параметром cfg
def initialize(cfg)
@cfg = cfg
end
# Метод get_configs для получения списка конфигураций
def get_configs
# Получаем список скрытых конфигураций из cfg
hide_list = @cfg.get_configs_hide
# Получаем список выбранных конфигураций из cfg
select_list = @cfg.get_configs_selected
# Создаем список глобальных конфигураций в директории /etc/mock/*.cfg
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) }
# Проверяем наличие глобальных конфигураций и создаем пустой список, если их нет
if list_global.nil?
list_global = []
end
# Создаем список локальных конфигураций в директории ~/.config/mock/*.cfg
list_local = Dir["~/.config/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }
# Проверяем наличие локальных конфигураций и создаем пустой список, если их нет
if list_local.nil?
list_local = []
end
# Создаем список выбранных конфигураций из глобального и локального списка
list_selected = (list_global + list_local).select { |item| check_partname_in_array(item[1], select_list) }
# Проверяем наличие выбранных конфигураций и создаем пустой список, если их нет
if list_selected.nil?
list_selected = []
end
# Возвращаем хеш с глобальными, локальными и выбранными конфигурациями
{ :global => list_global, :local => list_local, :selected => list_selected }
end
end