LINUX.ORG.RU

Dotenv-linter обновился до версии 2.2.1

 , , ,


1

2

Вышло обновление dotenv-linter — полезного инструмента для проверки и исправления ошибок в .env файлах (файлы переменных среды Docker’а).

Многие программисты стараются при разработке ПО придерживаться манифеста двенадцати факторов. Такой подход позволяет избежать большого количества проблем, связанных с развертыванием приложений и их дальнейшей поддержкой. Один из принципов этого манифеста гласит, что все настройки должны хранится в переменных окружения. Это позволяет менять их под разные окружения (Staging, QA, Production) без изменения кода. Для хранения переменных и их значений широко используются .env-файлы.

dotenv-linter находит и исправляет самые частые проблемы в подобных файлах: дублирование имён, неправильный разделитель, переменные без значения, лишние пробелы и так далее. Для каждого файла при этом создаётся резервная копия, чтобы изменения можно было откатить.

Инструмент написан на Rust, он очень быстрый и универсальный — его можно подключить к любому проекту на любом языке программирования.

Dotenv-linter входит в «Awesome Rust Mentors» и помогает начинающим контрибьюторам пройти первые шаги в разработке открытого ПО.

Репозиторий проекта: https://github.com/dotenv-linter/dotenv-linter

Статья с примерами и описанием работы: https://www.mgrachev.com/2020/04/20/dotenv-linter/

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от demidrol

С пятью звёздами не знать, что такое .env файлы и где используются, как минимум стыдно, срочно изучайте матчасть! Ссылки в тексте новости всё объясняют доступно для обывателя :)

Alve ★★★★★ ()
Ответ на: комментарий от Alve

срочно изучайте матчасть!

Интереса ради погуглил. Лучше бы я этого не делал…

.env расширение файла могут быть использованы в файле данных Adobe словарь или файл WordPerfect окружающей среды. Это расширение файла в основном используется Adobe продуктов, особенно для соответствующих файлов словарей. Другими словами, это .env расширение файла связано в основном с Adobe Acrobat и Adobe Reader. Они, как правило файлы, которые имеют что-то делать с проверкой орфографии и других словарных функций, связанных с главным интегрированных в функции редактирования текста, внедренных в некоторых программах Adobe. С точки зрения WordPerfect окружающей среды, .env формат реализован с помощью программного обеспечения Corel WordPerfect в его выходных файлов для функции экономии палитры и пользовательских сред, которые использует при обращении к программе. .env расширение файла часто используется другими программами, которые позволяют возможности настройки, например, изменение настроек среды или происхождения.

Zhbert ★★★★★ ()
Ответ на: комментарий от Alve

Разработчик Evrone Михаил Грачёв разработал dotenv-linter — полезный инструмент для проверки .env файлов. Он помогает находить проблемы в .env файлах, которые можно не заметить с первого взгляда, но способные в дальнейшем привести к неправильной работе приложений. Мы сделали этот инструмент универсальным, чтобы его можно было подключать к любому проекту вне зависимости от языка программирования.

It checks .env files for problems that may cause the application to malfunction:

И? Ничего они не объясняют. Стыдно с пятью звездами не уметь описать, что своя программка делает.

demidrol ★★★★★ ()

Откуда это вылезло и зачем нужен линтер для переизобретённых смузихлёбами rc?

И, самое главное, почему этот хабр торчит на главной ЛОРа?

anonymous ()
Ответ на: комментарий от Alve

С пятью звёздами не знать, что такое .env файлы и где используются, как минимум стыдно, срочно изучайте матчасть! Ссылки в тексте новости всё объясняют доступно для обывателя :)

Я-то грешным делом думал, что с пятью звёздами стыдно знать об очередном смузи, для которого, оказывается, ещё какой-то линтер нужен. Вот, оказывается, на какие жертвы идут, чтобы не втыкать в man sh! Впрочем, чего ещё ожидать от любителя «Doker»?

:)

Вы расскажете нам, как вы добрались до пяти звёзд, вообще не замечая, что на ресурсе, на котором вы флудили, не смайлофажит никто, кроме пони?

anonymous ()
Ответ на: комментарий от demidrol

Первые строчки поисковик мне выплёвывает по экосистеме JS. А эти ребята вообще живут в своём информационном пузыре и на ваши юникс-подобные системы чихать хотели. webpack-docker и в продакшен, так сказать.

anonymous ()

rust

Вы заметили, как весь этот IT-рак прямо-таки липнет друг к другу? JS, Docker, Rust, .env, поделка уровня leftpad, да я тут за пять минут собрал отменнейшее бинго, которое уже не то, что в два мешка Вована, оно и в ванну-то не поместится!

anonymous ()

Когда нытики в очередной раз начнут бубнить, мол «На Расте пишут одни хелловорлды1!!», буду их позорников никчемных показательно тыкать носом в эту статью. Пока вы тут ноете, на этом безопасном, системном, безопасном языке с безболезненной многопоточностью пишется полезный софт прямо здесь и сейчас (ну или там и потом, как получится).

Разобранный Флакон

anonymous ()

.env файлах (файлы переменных среды Docker’а)

Нагуглил вот это: https://docs.docker.com/compose/env-file/ Не понял можно ли в этих .env файлах docker-compose задавать переменные которые потом будут вставляться в различные места docker-compose.yaml, например для передачи контейнерам.

Из доков больше похоже что это только для тех 9-ти переменных, что задают «внутренние» параметры композа, вроде DOCKER_HOST.

Алсо, такие файлы много где используются (в т.ч. в шеллах) для задания переменных окружения. Из описания тулзы:

They provide a convenient way to store all environment variables in one place, and there are straightforward libraries in many languages (including Ruby, Elixir, Python, Go, and Rust) for working with them: all they do is load the variables from the file when the application starts.

alois ()

.env-файлы

Никаких env файлов не существует кроме системных. Говори прямо что скрипты задающие переменные окружения.

Ты ещё option файлами назови скрипты использующие @.

anonymous ()

оО

Не нужно, как и человек, который ошибается в файлах, где переменная=«значение»…

Не ну понимаю там yml какой нибудь, но переменные, мать их, окружения…

Это всё для мамкиных кубер/докер-смузихлёбов.

qbbr ★★★★ ()
Последнее исправление: qbbr (всего исправлений: 1)

Ну, эту хрень разве что встраивать в другую хрень которая будет чекать заливаемые файлы например. Но какой в этом толк если рядом будет ещё 100500 файлов с разным форматом где начудить можно похлеще. Уж в KEY=LAVUE задать не суметь нормально и с первого раза, ну это такое себе =) И да тут разве не помогут обычные bash линтеры? Лишние пробелы и переводы строк это всё не важно. А о действительно некорректных записях вроде как https://github.com/koalaman/shellcheck например сообщит или подобный софт коего уже навалом хоть попой жуй или я чего не понял

Для тех кто не может переменной значение задать с первого раза гыгыгыгы :D

ps всё так красочно 50 контрибуторов страничка с документацией, как будто ядро новое написали :D

Ну, если это было фор фан то ладно, успехов. Главное что-бы своё дело делала.

anonymous ()
Ответ на: комментарий от anonymous

ps всё так красочно 50 контрибуторов страничка с документацией, как будто ядро новое написали :D

Тут должна быть статься с любимого.ит про то, как Кумар в Google контрибьютил.

anonymous ()

Вред может принести

Дублирование ключей

Такую проблему можно встретить, если в проекте есть .env файл, который содержит большое количество строк. В этой ситуации, легко не заметить появление новых переменных окружения с уже существующими ключами. В таком случае, новые переменные перезапишут старые значения:

# .env
FOO=BAR
# ...
FOO=FOO

Часто может иметься именно такая запись где одна переменная перезаписывается в конце файла для теста или как поведение по умолчанию радом обычно пишут если вам нужно иное поведение закоментируйде эту строку или тип того.

Взять к примеру переменные среды android-ndk у меня их несколько и иногда нужно переключаться между ними, плодить на каждый свой файлик с описанием окружения нет нужды просто в конце оверлоад нужного в нужное значение, во первых так не теряется предыдущий сетап и удобно и наглядно. А тут оно похерит всё это удобство. Нахер надо.

(англицизмы для антуражу, шобы забавнее было)

Нет уж такие вещи надо писать с толком и расстановкой и обычно адекватные люди очень внимательно относятся к по факту конфигам ибо пишутся они не так часто, а если что то там не так то всё отвалится. Ну не знаю короче. Странно всё это. Ну ладно, бывает 1 косяк например раз в месяц, но он обычно на месте тут же видет и тут же ручками исправляется, после чего внимательно смотрится всё остальное. Да и в принципе эмм линуксоиды и всё такое в /etc/ поди каждый ковыряется, а там 100500 конфигов на 100500 форматах и ничё брат жив.

Я ещё пойму там bind9 конфиги чекать ибо там ну например новичку башню сносит от инопланетного описания зон, реально трешак и можно профукать кривые настройки, но опять же оно тупо работать не будет и всё.

Так или иначе после внесения изменений в конфигурацию сразу проверяют работоспособность. А тут чё? Херак херак через линтер прошло значит всё нормально, зато ip забыл с localhost на боевой поменять.

Нет уж, на подобные вещи тратится 5 минут глазного времени и всё.

anonymous ()
Ответ на: комментарий от dimuska139

Хз, я вообще смысла существования этой хрени не понимаю. Косяк в переменных окружения обнаруживается сразу же после проверки работоспособности с новыми значениями. ))))

anonymous ()

Dotenv-linter обновился до версии 2.2.1

Самое интересное, что никто не обратил внимания на заголовок. 2.2.1. Вы только посмотрите. У приблуды, которая проверяет непонятно зачем какое-то ненужно, версия 2.2.1. Это вообще за гранью добра и зла.

Dotenv-linter входит в «Awesome Rust Mentors» и помогает начинающим контрибьюторам пройти первые шаги в разработке открытого ПО.

Oh wow. Был, значит, фронтендер или чувачок из киоска с шаурмой. Вот таким образом он решил вайти вайти. Приходит такой в фирму и затирает про то, как писал на пасте линтер для k/v. Да так с юморком про двенадцать концепций, TDD и прочий SOLID, не забывая упомянуть про несправедливо угетённые в IT слои населения. PM, следуя извечному правилу PM, его берёт и вот наш чувачелло уже пишет книги, ходит на конференции, его прёт. Послезавтра он сделает новый Agile Manifesto и на курсах («Шаг», «Яндекс.Практикум», курсы от мейлрушечки и прочее выучивание C++ за 21 день) будут вдалбливать вайтишникам уже его творения вместо K&R и манов. А уже потом он возьмёт модераторские погоны и уж точно превратит ЛОР в ХАБР.

anonymous ()
Ответ на: комментарий от Zhbert

А с каких это пор Devops и Ansible стали хипстотой?

Это же суровый тырпрайз со ставкой 150 евро в час, а не смуси LevelDB митапы и коворкинги на маках в ближайшем KFC.

GP ()
Ответ на: комментарий от Zhbert

С того момента, как тут появился vit, пони, один персонаж сверху (если мне память не изменяет) и модератор от фракции «никакого sjw нет, давайте забаним всех хейтеров sjw»

anonymous ()
Ответ на: комментарий от anonymous

Самое интересное, что никто не обратил внимания на заголовок. 2.2.1. Вы только посмотрите. У приблуды, которая проверяет непонятно зачем какое-то ненужно, версия 2.2.1. Это вообще за гранью добра и зла.

коллега, это действительно самое смешное тут :)

anonymous ()
Ответ на: комментарий от Alve

У вас неправильный интернет какой-то. Мой интернет по запросу «.env files» сразу правильные вещи находит.

а у вас отсутствуют элементарные знания о том, как работают «поисковики». если вы, к примеру, в последнее время увлекались поиском всего, что касается docker, то вам и будут подсовывать все, что хоть как-то относится к этой теме. один и тот же запрос выдает разные, порой значительно, результаты в зависимости от очень многих факторов.

dummy ()
Ответ на: комментарий от anonymous

ps всё так красочно 50 контрибуторов страничка с документацией, как будто ядро новое написали :D Это Америка. Весь мир будет использовать красочное и дружелюбное, а проект получит миллиарды долларов от бизнес-ангелов, разработчики с выданными им новыми Маками ни в чем не будут нуждаться, живя в центре Цивилизации.

А юниксвейные красноглазики в это время будут шариться по помойкам своего серого Нефтебирюйска в поисках чего поесть и выброшенной PS2-клавиатуры на замену. Как выкинутый из приличного общества, где уважают Женщин, Людей Цвета и Гомосексуалистов, старикан Столлман.

Такова жизнь.

anonymous ()
Ответ на: комментарий от anonymous

А юниксвейные красноглазики в это время будут шариться по помойкам своего серого Нефтебирюйска в поисках чего поесть и выброшенной PS2-клавиатуры на замену. Как выкинутый из приличного общества, где уважают Женщин, Людей Цвета и Гомосексуалистов, старикан Столлман.

Ты, главное, никогда не забывай, что «радужный»==успешный ))

Такова жизнь.

yyk ★★★★★ ()

Вышло обновление ненужно — ненужного инструмента для ненужно в .env файлах (файлы переменных среды ненужно).

Представляю сколько бы десятков гигабайт ОЗУ потреблял Линукс, если бы его писали подобные кретины с инструментом для проверки плейнотекстового конфига.

windows10 ★★ ()
Ответ на: комментарий от windows10

Представляю сколько бы десятков гигабайт ОЗУ потреблял Линукс, если бы его писали подобные кретины с инструментом для проверки плейнотекстового конфига.

так уже есть, компилятор/ассемблер называется )))

anonymous ()
Ответ на: комментарий от anonymous

Ага, прям сейчас вижу. Программа для проверки и исправления ошибок конфига ядра:

Found: CONFIG_HZ=1000
We better know you want: CONFIG_HZ=250

Знаешь, я вот пишу на Пыхе. Пусть и не веб, а даже очень системные штуки вроде работы с девайсами на i2c-портах, но тем не менее считал себя шоле каким-то ньюфагом-быдлокодером. Но нет, похоже дно еще далеко ))

windows10 ★★ ()

Многие программисты стараются при разработке ПО придерживаться манифеста двенадцати факторов

Щито?

Манифест четырёх факторов: ч - читабельно, п - поддерживаемо, р - работает, з - заипись

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 1)