diff --git a/Readme.md b/Readme.md index 048a977..72f7ef9 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,37 @@ # Мастер настроек GoSetup терминальная версия Перенос [GoSetup+Fyne](https://dev.gossys.dev/XeRo/GoSetup) в терминал с использованием библиотек сообщества [charm](https://charm.sh/). + + +## Структура +В файле yaml есть следующие корневые поля: +- name - имя приложения для настройки +- version - версия приложения +- description - краткое описание приложения +- type - тип приложения +- variables - массив переменных, в которых будет храниться нужная информация +- sections - массив секций, форм для разделения этапов настройки + +### Переменные +Переменные хранят значение для настройки, в них записываются значения полей, используются в условиях и для выполнений действий +Переменная имеет 3 поля: +- name - имя переменной, по имени идет связь со всем. Имя должно быть уникальным +- type - тип значения +- default - значение по умолчанию, если boolean, то указывайте без кавычек + +### Секции +Каждая секция это отдельна форма. +Секция имеет следующие поля: +- name - имя секции +- type - тип секции, по умолчанию тип не указывается, в таком случае секция содержит поля ввода. Если type About, то мы выводим подробное описание приложения. Если type Final, то выводим таблицу переменных со всеми значениями. About ставьте первой секцией, а Final последней. +- description - описание секции, что в ней прописывается. Пишите коротко +- condition - условие при котором эта секция отображается +- parent - массив имен переменных от которых зависит условие +- paragraphs - массив строк, используется если type About. Используются следующие правила: + - '#' Заголовок первого уровня + - '##' Заголовок второго уровня + - '###' Заголовок третье уровня + - '-' элемент списка + - простой текст +- fields - массив полей для вывода +- actions - массив действий, которые должны выполнится после перехода с этой секции diff --git a/setup/main.go b/setup/main.go index 6d9f579..3c294e1 100644 --- a/setup/main.go +++ b/setup/main.go @@ -258,7 +258,7 @@ func (m *Main) View() string { // Sugar проверяет поле указанное в сообщение на важность в форме и приложении. func (m *Main) Sugar(sugar types.SugarMsg) { - //Если полей с указанной переменной несколько, то выключаем все прочие поля кроме, указанного в сообщении + //Если полей с указанной переменной несколько, то выключаем все прочие поля кроме, указанного в сообщении. todo изменение поля со старта приводит к сбросу в конец if utils.IsMultiField(sugar.VariableName, m.CurrentApplication.Sections) { m.DeactivateField(sugar.VariableName, sugar.FieldName) } diff --git a/setup/utils/utils.go b/setup/utils/utils.go index 146169a..948055e 100644 --- a/setup/utils/utils.go +++ b/setup/utils/utils.go @@ -146,7 +146,6 @@ func ParamsForCondition(app *types.PackageApplication) map[string]interface{} { params[field.VariableName] = value } } - return params }