vanessa-runner icon indicating copy to clipboard operation
vanessa-runner copied to clipboard

Перевести реализацию работы с настройками/параметрами ком.строки на использование библиотеки params

Open artbear opened this issue 8 years ago • 5 comments

Перевести реализацию работы с настройками/параметрами ком.строки на использование библиотеки 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 // комментарий-продолжение строки
}

artbear avatar Sep 06 '17 10:09 artbear

Меня смущают только комментарии в json. Ну а так не против по выносу кода чтения параметров в отдельную библиотеку.

pumbaEO avatar Sep 06 '17 10:09 pumbaEO

комментарии все-таки удобны при описании параметров. В моей реализации комментарии вырезаются перед загрузкой, так что ошибок.

кто не хочет их юзать, может не пользоваться, ограничений нет.

artbear avatar Sep 06 '17 11:09 artbear

Истина - нет в спеке джсона. Я против парсинга истины и ложь в джсоне.

nixel2007 avatar Sep 06 '17 15:09 nixel2007

Я считал, что есть :) В params этот момент не дорабатывал и не проверял переделаю ридми и все

artbear avatar Sep 06 '17 19:09 artbear

Ридми params в develop переделано

artbear avatar Sep 06 '17 20:09 artbear