dotenv icon indicating copy to clipboard operation
dotenv copied to clipboard

template is not created in working directory

Open gerard76 opened this issue 2 years ago • 2 comments

When I create a template from an existing .env file located in another directory as my working directory, the template is not created in my working directory

Steps to reproduce

mkdir temp
echo "setting=123" > temp/.env
dotenv -t temp/.env
cat temp/.env.template

Expected behavior

I expected the .env.template to be created in my current (working) directory and not in the directory of the .env file as per the documentation.

System configuration

dotenv version: dotenv 2.8.1

gerard76 avatar Jan 09 '23 10:01 gerard76

The documentation shows one creating a template from .env not temp/.env:

https://github.com/bkeepers/dotenv#should-i-commit-my-env-file

So, were you to run the example code, then "A template will be created in your working directory named {FINAME}.template. So in the above example, it would create a .env.template file."

If you look at the code: https://github.com/bkeepers/dotenv/blob/45b712a5c17d707959df69595b1dd12e0a18cfd1/lib/dotenv/template.rb#L9-L17

...then you will see that it just takes the filename passed on the CLI (including the path; the input file name {FINAME} referenced in the docs) and appends .template to create the template filename.

After looking at it, I think that the current functionality is the expected behavior.

karlwilbur avatar Jan 12 '24 22:01 karlwilbur

Indeed, that is what the code does and what I pointed out to be be incompatible with the documentation. The template is not created in the working directory but in the directory where the .env lives. In the documentation example they happen to be the same.

If this is the expected behavior the documentation could be updated, if the documentation is right, the code could be updated, but right now they are not compatible with each other.

gerard76 avatar Jan 13 '24 10:01 gerard76