rockspec_format = '3.0' package = 'tnt-env' version = 'scm-1' source = { url = 'git+https://github.com/tnt-skein/tnt-env.git', branch = 'main', } description = { summary = 'Переменные среды: .env, приведение типов, обязательные, сверка с образцом', detailed = [[ Файл .env рядом с приложением обычно читает одна только оболочка, и узел, поднятый не через неё, переменных не видит: поведение зависит от способа запуска. А каждое прямое обращение к os.getenv несёт своё приведение типа и своё умолчание — пустая строка срабатывает как «да», а «восемь» вместо порта молча превращается в порт по умолчанию. Пакет даёт чтению окружения одно место входа. Формат .env понимается целиком: слои .env, .env.local и .env.<среда>, кавычки, экранирование, многострочные значения, приставка export, подстановка ${VAR}; отказ разбора называет файл и строку. Значение приводится к роду умолчания — число, логическое, строка, — а род назван и именем вызова: bool, int, number, string, list. Настоящее окружение главнее файла. Обязательная переменная без значения останавливает старт, и все забытые называются разом; сверка с .env.example называет недостающие и лишние имена. Значение, чьё имя похоже на пароль, не попадает ни в текст отказа, ни в status(). Зависит от tnt-must (проверка аргументов и вид значения в тексте отказа) и tnt-external (окружение и файлы подменяются в проверках). Покрытие строк и убитых мутантов — 100 %. ]], homepage = 'https://github.com/tnt-skein/tnt-env', issues_url = 'https://github.com/tnt-skein/tnt-env/issues', maintainer = 'tnt-skein', license = 'MIT', labels = { 'tarantool', 'env', 'dotenv', 'configuration', 'secrets' }, } dependencies = { 'lua >= 5.1', -- Проверка аргументов с виной на вызывающем, бросок без места и вид -- значения в тексте отказа. 'tnt-must', -- Окружение и файлы — внешние зависимости: проверки подменяют их, -- а не зависят от того, что задано на машине. 'tnt-external', } build = { type = 'builtin', modules = { ['tnt.env'] = 'tnt/env.lua', ['tnt.env.cast'] = 'tnt/env/cast.lua', ['tnt.env.example'] = 'tnt/env/example.lua', ['tnt.env.parse'] = 'tnt/env/parse.lua', ['tnt.env.secret'] = 'tnt/env/secret.lua', }, }