romanzipp/laravel-env-normalizer

Format .env files according to your .env.example structure to keep track of used and unused variables

Downloads

5527

Stars

0

Version

1.2.0

Laravel Env Normalizer

Latest Stable Version Total Downloads License GitHub Build Status

Format .env files according to your .env.example structure to keep track of used and unused variables.

Why?

I like to keep a clear overview of all available environment variables by adding some default values to my version controled .env.example file. This packages helps with structuring your example files.

Contents

Installation

composer require romanzipp/laravel-env-normalizer --dev

Usage

php artisan env:normalize

List all available options

php artisan env:normalize --help

Specify reference and target file(s)

Reference and target options are optional. If not specified the command will only look for a .env.example (as reference) and .env file (as target).

php artisan env:normalize --reference=.env.example --target=.env --target=.env.local

Automatically format all other .env files

This option will discover any other .env.* files located in the base path and add them to the target list.

php artisan env:normalize --auto

Create backup files

This will create a {name}.bak backup file for each modified target file.

php artisan env:normalize --backup

Dry run

Log the expected output to the console instead of writing it to the file.

php artisan env:normalize --dry

Example normalization

.env.example previous .env new .env
BASE_URL=localhost 

# Database

DB_HOST=127.0.0.1
DB_PORT=${DEFAULT_PORT}
DB_USER=
DB_PASSWORD=

# Mail

MAIL_CONNECTION=







DB_HOST=10.0.0.10
BASE_URL=me.com
DB_USER=prod
DB_PASSWORD=123456
# Mail
MAIL_CONNECTION=foo
MAIL_USER=tim
#DEV_PW=123











BASE_URL=me.com 

# Database

DB_HOST=10.0.0.10
DB_USER=prod
DB_PASSWORD=123456

# Mail

MAIL_CONNECTION=foo

# Additional

MAIL_USER=tim

# Unset

#DEV_PW=123
  • The base structure for all target .env files will be taken from the reference .env.example file
  • Values will be replaced with the existing content
  • Unused (not overwritten) example variables will not be added
  • Additional variables from the .env file will be appended to the bottom so you can later add them to your version controled example file
  • Commented lines #FOO=bar which do not start with hash + space # will be appended to the end

Roadmap

  • Detect similar variables and position them below existing ones (place MAIL_FROM below MAIL_CONNECTION instead of appendin it to the end)

Testing

./vendor/bin/phpunit
romanzipp

Author

romanzipp