77 lines
5.3 KiB
Go
77 lines
5.3 KiB
Go
package types
|
||
|
||
// PackageApplication структура описывающая настраиваемое приложение
|
||
type PackageApplication struct {
|
||
Name string `yaml:"name"` //Имя приложения
|
||
Version string `yaml:"version"` //Версия приложения
|
||
Description string `yaml:"description"` //Описание приложения
|
||
Icon string `yaml:"icon"` //Иконка приложения
|
||
Type string `yaml:"type"` //Тип приложения
|
||
ConfFiles []ConfFile `yaml:"conf-files"` //Файлы конфигурации
|
||
Variables []Variable `yaml:"variables"` //Переменные настройки
|
||
Sections []Section `yaml:"sections"` //Секции настройки
|
||
Changed bool `yaml:"-"` //Вносились ли изменения
|
||
}
|
||
|
||
// ConfFile структура описывающая используемый приложением конфигурационный файл
|
||
type ConfFile struct {
|
||
File string `yaml:"file"` //Путь файла
|
||
Type string `yaml:"type"` //Тип файла
|
||
Name string `yaml:"name"` //Имя файла
|
||
}
|
||
|
||
// Variable структура описывающая переменную для настройки приложения
|
||
type Variable struct {
|
||
Name string `yaml:"name"` //Имя переменной
|
||
Type string `yaml:"type"` //Тип значения переменной
|
||
Default string `yaml:"default"` //Значение по умолчанию
|
||
Value interface{} `yaml:"-"` //Используемое значение
|
||
}
|
||
|
||
// Section структура описывающая секцию настройки приложения
|
||
type Section struct {
|
||
Name string `yaml:"name"` //Имя секции
|
||
Type string `yaml:"type"` //Тип секции
|
||
Description string `yaml:"description"` //Описание секции
|
||
Fields []SectionField `yaml:"fields"` //Поля секции
|
||
Paragraphs []string `yaml:"paragraphs"` //Параграфы для описания приложения
|
||
Parent []string `yaml:"parent"` //Переменные от которых зависит секция
|
||
Condition string `yaml:"condition"` //Условие отображения секции
|
||
Actions []SectionAction `yaml:"actions"` //Действия выполняемые после перехода с секции
|
||
}
|
||
|
||
// SectionField структура описывающая поле секции
|
||
type SectionField struct {
|
||
Name string `yaml:"name"` //Имя поля
|
||
VariableName string `yaml:"variable-name"` //Имя переменной, хранящей значение поля
|
||
FieldType string `yaml:"field-type"` //Тип поля
|
||
FileFieldExtensions []string `yaml:"file-field-extensions"` //Расширения файла для поля выбора файла
|
||
Description string `yaml:"description"` //Описание поля
|
||
Condition string `yaml:"condition"` //Условие отображения поля
|
||
Options []interface{} `yaml:"options"` //Список опций
|
||
SpecialValue string `yaml:"special-value"` //Специального значения
|
||
Compute string `yaml:"compute"` //Строка вычислений значения
|
||
Validate []FieldValidate `yaml:"validate"` //Правила проверки значения
|
||
Parent []string `yaml:"parent"` //Переменные от которых зависит поле
|
||
Variable *Variable `yaml:"-"` //Указатель на переменную
|
||
Active bool `yaml:"-"` //Активно ли поле для получения значения
|
||
}
|
||
|
||
// FieldValidate структура описывающая правила проверки значения поля
|
||
type FieldValidate struct {
|
||
Rule string `yaml:"rule"` //Правило проверки
|
||
Message string `yaml:"message"` //Сообщение ошибки
|
||
}
|
||
|
||
// SectionAction структура описывающая действия к выполнению
|
||
type SectionAction struct {
|
||
Name string `yaml:"name"` //Имя действия
|
||
Type string `yaml:"type"` //Тип действия
|
||
Command string `yaml:"command"` //Команда для выполнения
|
||
FileTarget string `yaml:"file-target"` //Целевой файл редактирования
|
||
FileSource string `yaml:"file-source"` //Файл источник
|
||
Condition string `yaml:"condition"` //Условие для выполнения
|
||
RunAs string `yaml:"run-as"` //Пользователь для запуска
|
||
RequirePackages []string `yaml:"require-packages"` //Требуемые пакеты
|
||
Error string `yaml:"error"` //Ошибка выполнения
|
||
}
|