Разработки проекта PuppyRus > PureBasic

Парсер конфигов

(1/2) > >>

AZJIO:
Послушал тут на счёт конфигов, появилась идея, допустим скопировал дефолтный конфиг после установки, настроил программу, сравнил изменение/добавление параметров, опять же программно - перечисление параметров, разницу сохраняет в файле. Теперь у нас в базе есть путь к конфигу и список параметров, которые в него надо добавить/изменить. Теперь при установке программы не важно на какой системе запускаем программу восстановления настроек и получаем результат не делая это вручную.
На работе пришла эта идея, записал в блокнот и только сейчас прочитал. Единственное можно столкнуться с нестандартностью конфигов, так что планы на следующие выходные опять забиты.

knn:
  Имхо - лучше заменять "конфиг-строки целиком", а не значение параметра . У меня на баше был какой-то головняк  для xml-овского синтаксиса ~/.config/rox.sourceforge.net/ROX-Filer/Options.
Но это я тогда пробовал "подставлять" значение параметра, беря его из "тела скрипта" и столкнулся с "чрезмерным закавычиванием" ( до того чтоб брать значения[ а точнее получается строки] из юзер-файла тогда вроде руки так и не дошли )

Да и в некоторых конфигах строки( содержащей параметр) может и не быть [пр.: ~/.icewm/prefoverride, ~/.links/links.cfg, ....]).

# на данное время пользую скрипты, где вставляются "строки" ( т.е. это пока "для себя". строки там беруться из "тела".  юзер-файла и соответственно "диалога" пок нет).

про то, что  "конфиг-строки целиком, а не значение параметра" - может быть и спорно - может нужно и "пересматривать"...
-----
 Замечал по крайней мере на паре конфиг-файлах ( ~/.config/rox.sourceforge.net/ROX-Filer/Options и ~/.icewm/prefoverride) - если конфиг-файл воспринимается самой прогой как ошибочный - прога генерит "дефолтный-конфиг".
( и нет пока соображений "чего делать в этом случае"... - но, имхо, на данный момент некритично  )

Кто-знает - может еще-какие подводные камушки могут повылазить(с учетом того что "структуры конфиг-файлов" разных прог устроены по-разному ).

-------
 На данное время у меня пока представление о "юзкейзе" 'проги/скрипта-для-вставки-строк-в-конфигфайл':
- диалог   выбора целевого-конфиг-файла(к.-либо проги) , затем диалог выбора "юзер-файла со строками настроек пользователя".

  Как например оперировать с "группой(/~ами) конфиг-файлов" (в смысле чтоб "массово") более-менее четкого представления пока нет . Но тут :) "пока не до жиру...".

Это мои размышления если смотреть "со стороны bash~а"
=========
? PB под 'dialog'[ или как-либо еще для диалога-выбора файлов в консоли] вообще впринципе можно( есть ли наработки)? - не единичны линукс-сборки(iso-хи) без Иксов ...

knn:

--- Цитата: AZJIO от 15 Январь 2021, 22:38:09 ---, появилась идея, допустим скопировал дефолтный конфиг после установки, настроил программу, сравнил изменение/добавление

--- Конец цитаты ---
имхо - вышеозвученная идея "сравнения дефолтного(/исходного) и "результирующего юзер конфига" после настройки проги - вполне интересна, и вполне полезна как в случае настройки ч/з GUI-проги, так и если конфиг правиться руками.   

AZJIO:
knn
пока идея такова: есть некоторое зеркало папки "/home/пользователь/.config", не важно где, в загрузках "/home/пользователь/Загрузки/config. При запуске проги указал путь к зеркалу. Далее выполняется рекурсивный поиск файлов (т.е. конфигов) берётся относительный путь и проверяется наличие такого же файла в настоящем ".config". Если файл существует, то осуществляется чтение значения всех параметров в зеркале и переносится в оригинал если значение параметра отличается. Чтение может быть как обычным движком "параметр=значение", так и методом регулярных выражений, то есть переносить текст после "=" как есть, без изменения пробелов на концах, удаление/прибавления кавычек и т.д.
Понял что именно сравнение с дефолтным не решает проблему, так как если вычленить разницу с дефолтным, а у человека давно уже не дефолтный конфиг, то мы не сможем встроить все параметры, а только те, которые отличались от дефолтного. Сравнение могло бы уменьшить размер конфигов, но в итоге текстовые файлы в архиве занимают мало места и экономия была бы не большой, а вызванные такой концепцией проблемы большие. Та же сборка IceArch, там Geany не дефолтный и это тот случай когда настройки применяться не так как ожидалось.
И такая система проста в использовании, просто после настройки находим свой конфиг, кидаем в зеркало, и всё, прога сама его найдёт и начнёт проверять с оригиналом.


--- Цитата: knn от 16 Январь 2021, 04:28:45 ---? PB под 'dialog'[ или как-либо еще для диалога-выбора файлов в консоли] вообще впринципе можно( есть ли наработки)? - не единичны линукс-сборки(iso-хи) без Иксов ...
--- Конец цитаты ---
не понял вопроса. Сделать диалог выбора файлов из консоли с возвратом результата? Или наоборот сделать консольную программу с возможностью выбора файлов? Оба варианта думаю есть. Можно компилировать как консольную программу и в ней вводить пути, хотя я это не пробовал.

knn:

--- Цитата: AZJIO от 17 Январь 2021, 05:56:13 ---
--- Цитата: knn от 16 Январь 2021, 04:28:45 ---? PB под 'dialog'[ или как-либо еще для диалога-выбора файлов в консоли] вообще впринципе можно( есть ли наработки)? - не единичны линукс-сборки(iso-хи) без Иксов ...
--- Конец цитаты ---
не понял вопроса. Сделать диалог выбора файлов из консоли с возвратом результата? Или наоборот сделать консольную программу с возможностью выбора файлов? Оба варианта думаю есть. Можно компилировать как консольную программу и в ней вводить пути, хотя я это не пробовал.

--- Конец цитаты ---
- получается подразумевал -
"консольную-прогу например с использованием 'dialog'(его функционала)", или с применением других tty-прог
(вопрос задавал не с к.-либо "точечной целью", а чтоб получить приблизительное представление ширины возможностей)
-----------
как понял "и те, и те" возможности есть... ) ну и вообще что возможностей не мало.
(я знаком только с Бейсиком тем что был тогда на Спектруме .
Потом глухо забросил компютерную тематику. Разве что потом по общей учебной программе доводились какие-то домашние задания в малом количестве.
Из вспомнившегося бейсиковского - тасовал и раздавал колоду карт - до искуственного интелекта дело не дошло   ;D ;D ;D)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии