Files
mock-gui/classes/configs.rb

50 lines
2.4 KiB
Ruby
Raw Normal View History

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