vanessa-runner
vanessa-runner copied to clipboard
Перевести реализацию работы с настройками/параметрами ком.строки на использование библиотеки params
Перевести реализацию работы с настройками/параметрами ком.строки на использование библиотеки https://github.com/oscript-library/params
В ней реализованы все возможности из ванесса-раннер + добавлены дополнительные возможности
Библиотека проекта
oscript.ioдля автоматизации использования различных настроек для командных приложений/скриптов OneScript.
Возможности:
- чтение настроек из произвольных json-файлов
- из явно заданных файлов
- из файлов с именем по умолчанию
- чтение настроек из иерархических json-файлов
- чтение настроек из "вложенных" json-файлов, которые связаны ссылками
- чтение настроек из переменных среды
- чтение настроек из командной строки, в т.ч. с передачей нескольких файлов в одном параметре
- одновременное использование вышеуказанных возможностей согласно приоритетам
2. Форматы json-файлов настроек
- Иерархический файл настройки
{
"default": {
"--ibconnection": "/F./build/ib",
"--db-user": "Администратор",
"--db-pwd": "",
"--ordinaryapp": "0"
},
"vanessa": {
"--vanessasettings": "./tools/VBParams.json",
"--workspace": ".",
"--pathvanessa": "./tools/vanessa-behavior/vanessa-behavior.epf",
"--additional": "/DisplayAllFunctions /L ru"
}
}
Параметры команды (vanessa) имеют более высокий приоритет, чем настройки ключа default
В ключе default удобно указывать параметры, которые являются общими для нескольких команд.
- Другой вариант, без явного ключа
default
{
"--ibconnection": "/F./build/ib",
"vanessa": {
"--vanessasettings": "./tools/VBParams.json",
}
}
- Плоский файл настройки
{
"--ibconnection": "/F./build/ib",
"--db-user": "Администратор",
"--db-pwd": "",
"--ordinaryapp": "0",
"--vanessasettings": "./tools/VBParams.json",
"--workspace": ".",
"--pathvanessa": "./tools/vanessa-behavior/vanessa-behavior.epf",
"--additional": "/DisplayAllFunctions /L ru"
}
-
Возможно чтение вложенных файлов (по ссылке)
- Если в файле параметров указать имя параметра, которое начинается с
ReadFile, - а в значении путь к файлу (в том числе относительно текущего файла),
- то будут прочитан так же и указанный файл.
- возможно любая вложенность
- Если в файле параметров указать имя параметра, которое начинается с
{
"ReadFile": "main.json",
"ReadFile.server1c": "c:\tools\settings\server1c.json",
"ReadFile.storage": "./storage.json"
}
- Возможно русские имена параметров
- Возможно использование чисел и булевых параметров
{
"таймаут": 10,
"ИспользоватьТаймаут": true,
"ИспользоватьТиповуюВыгрузку": false
}
- Возможно использование подстановок значений
При разработке очень желательно указывать один параметр всего единожды, в одном месте файла/файлов.
- Например, когда изменится версия платформы 1С на сервере - нужно изменить только один параметр, а не множество файлов.
{
"v8version": "8.3.10.2299",
"bin": "c:/program Files (x86)/1cv8/%v8version%/bin/1cv8.exe"
}
- Возможно использование обычных комментариев 1С
{
// простой комментарий
"таймаут": 10 // комментарий-продолжение строки
}
Меня смущают только комментарии в json. Ну а так не против по выносу кода чтения параметров в отдельную библиотеку.
комментарии все-таки удобны при описании параметров. В моей реализации комментарии вырезаются перед загрузкой, так что ошибок.
кто не хочет их юзать, может не пользоваться, ограничений нет.
Истина - нет в спеке джсона. Я против парсинга истины и ложь в джсоне.
Я считал, что есть :) В params этот момент не дорабатывал и не проверял переделаю ридми и все
Ридми params в develop переделано