Dotenv-linter v2.2.1: поиск и исправление проблем в .env файлах
Разработчик Evrone Михаил Грачёв разработал .env
файлов. Он помогает находить проблемы в .env
файлах, которые можно не заметить с первого взгляда, но способные в дальнейшем привести к неправильной работе приложений. Мы сделали этот инструмент универсальным, чтобы его можно было подключать к любому проекту вне зависимости от языка программирования.
Вот что изменилось в новой версии
Исправление ошибок ????
Раньше
мог только находить проблемы в .env
файлах:
$ dotenv-linter
.env:2 DuplicatedKey: The FOO key is duplicated
.env:3 UnorderedKey: The BAR key should go before the FOO key
Теперь он может исправлять их с новым аргументом -fix
/-f
:
$ dotenv-linter --fix
Original file was backed up to: ".env_1601378896"
.env:2 DuplicatedKey: The FOO key is duplicated
.env:3 UnorderedKey: The BAR key should go before the FOO key
All warnings are fixed. Total: 2
Создание резервных копий ????
Для каждого файла
создаёт резервную копию, чтобы вы могли откатить изменения. Эта фича отключается аргументом -
:
$ dotenv-linter --fix --no-backup
.env:2 DuplicatedKey: The FOO key is duplicated
.env:3 UnorderedKey: The BAR key should go before the FOO key
All warnings are fixed. Total: 2
Управляющие комментарии ????
Раньше проверки могли быть отключены глобально аргументом -skip
/-s
:
$ dotenv-linter --skip UnorderedKey EndingBlankLine
.env:2 DuplicatedKey: The FOO key is duplicated
Found 1 problem
Теперь
позволяет добавлять управляющие комментарии, которые отключают проверку для конкретных строк или файла целиком:
# .env
# Комментарии в начале файла отключают проверки для всего файла
# dotenv-linter:off DuplicatedKey, EndingBlankLine
# dotenv-linter:off UnorderedKey (Вы можете отключить проверку только для некоторых строк)
FOO=BAR
BAR=FOO
# dotenv-linter:on UnorderedKey (И включить её обратно)
Отображение количества проблем ????
При проверке нескольких .env
файлов было непонятно, сколько всего проблем было найдено. Мы добавили эту информацию:
$ dotenv-linter
.env:2 DuplicatedKey: The FOO key is duplicated
.env:3 UnorderedKey: The BAR key should go before the FOO key
.env.test:1 LeadingCharacter: Invalid leading character detected
Found 3 problems
Также мы добавили новый аргумент -quiet
/-q
, чтобы можно было это отключать:
$ dotenv-linter --quiet
.env:2 DuplicatedKey: The FOO key is duplicated
.env:3 UnorderedKey: The BAR key should go before the FOO key
.env.test:1 LeadingCharacter: Invalid leading character detected
Установка самой свежей версии из репозитория ????
Добавили возможность установки последней версии
$ brew install --HEAD dotenv-linter
Исправили ошибки при проверке .envrc
файлов ????
Dotenv-linter
мог случайно проверить .envrc
файлы с bash-скриптами, которые используются в direnv
:
$ dotenv-linter
.envrc:2 KeyWithoutValue: The source_up key should be with a value or have an equal sign
.envrc:4 KeyWithoutValue: The use kerl --auto key should be with a value or have an equal sign
.envrc:5 KeyWithoutValue: The use kiex --auto key should be with a value or have an equal sign
.envrc:6 KeyWithoutValue: The use nvm --auto key should be with a value or have an equal sign
.envrc:7 KeyWithoutValue: The use chruby --auto key should be with a value or have an equal sign
.envrc:10 KeyWithoutValue: The dotenv key should be with a value or have an equal sign
Found 6 problems
Поэтому мы добавили исключение для .envrc
файлов.
Перепроверка файлов ????
Dotenv-linter
умеет проверять директорию целиком, для этого нужно указать путь к ней. Если указать путь дважды — файлы буду просканированы снова:
$ dotenv-linter envs/ envs/
envs/.env.a:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.b:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.c:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.a:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.b:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.c:1 KeyWithoutValue: The test key should be with a value or have an equal sign
Found 6 problems
Уточнение файла в этой директории также приведёт к повторной проверке:
$ dotenv-linter envs/ envs/.env.b
envs/.env.b:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.a:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.b:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/.env.c:1 KeyWithoutValue: The test key should be with a value or have an equal sign
Found 4 problems
Цикличная рекурсивная проверка ????
Dotenv-linter
позволяет запускать рекурсивную проверку аргументом --recursive
/-r
. Наличие символической ссылки на один и тот же каталог может привести к циклической рекурсивной проверке:
$ dotenv-linter -r envs/
envs/.env:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/symlink/.env:1 KeyWithoutValue: The test key should be with a value or have an equal sign
envs/symlink/symlink/.env:1 KeyWithoutValue: The test key should be with a value or have an equal sign
[snipped]
Found 41 problems
Это ключевые изменения. Больше информации о новых фичах
Этот релиз был бы невозможен без помощи 19 талантливых
.env
файлов. Это ещё и дружелюбный