Поместите приложение с требуемым профилем в управление конфигурацией (git) и игнорируйте любой (локальный) файл переопределения.
Например, поместите файл с именем .env.dist
под контроль версий, тогда как файл .env
находится в файле .gitignore
того же проекта (по тому же пути):
# dot env
/.env
Заставьте вашу утилиту / бот загружать любой файл .env.dist
по умолчанию и файл .env
, переопределяющий этот файл .env.dist
. Это позволяет документировать, планировать и определять необходимые переменные среды, в то же время позволяя пользователю сохранять локальную копию со всеми производственными учетными данными (при необходимости).
Затем дайте вашему боту другой параметр, чтобы загрузить другой файл среды имен (точка env), взяв на себя инициативу. Это позволяет запускать бота с любой другой конфигурацией.
Если вы следуете синтаксису файлов окружения, используемому утилитой Docker CLI , вы, скорее всего, достаточно совместимы и можете достичь многого, не отказываясь от большей части своих свобод.
Так что примите это за предложение.
Еще один: если вы хотите использовать diff-утилиты для быстрого сравнения между файлами среды, я могу предложить один совет: если вы создаете разделы (как в противном случае вы должны упорядочить имена параметров (переменных) среды по имени), дать каждому разделу заголовок с (если не сверху файла) пустой строкой, отдельным #
комментарием, другим комментарием с именем раздела # name of section
и еще одной единственной #
строкой. Это дает инструментам различий на основе текста достаточно пищи, чтобы разделить разделы друг от друга (и помимо других однострочных комментариев).
#
# DISCORD API
#
DISCORD_ID
DISCORD_KEY
#
# MYSQL DATABASE
#
MYSQL_HOST
MYSQL_PASS
MYSQL_PORT
MYSQL_USER
(примерный .env.dist
файл, подсказывающий обязательный параметр, но не предоставляющий никаких секретов)
#
# DISCORD API
#
DISCORD_ID=42
DISCORD_KEY=aefdcd8d71d200efaefdcd8d71d200ef
#
# MYSQL DATABASE
#
MYSQL_HOST=example.com
MYSQL_PASS=root
MYSQL_PORT=34732
MYSQL_USER=root
(примерный .env
файл, содержащий секреты и исключенный (не добавляйте!) Через .gitinore
непосредственно в проект git).
Добавьте больше файлов "dot env" в .git/info/exclude
и / или если вы примете этот шаблон для всей вашей системы разработки в global .gitignore
. Прочтите описание в Git gignore Документация как используется (многоуровневый) gitignore и когда он не игнорирует ни один из файлов, даже если он указан.