bkeepers / dotenv

A Ruby gem to load environment variables from `.env`.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

template is not created in working directory

gerard76 opened this issue · 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

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:

def create_template
File.open(@env_file, "r") do |env_file|
File.open("#{@env_file}.template", "w") do |env_template|
env_file.each do |line|
env_template.puts template_line(line)
end
end
end
end

...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.

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.