Open mkyc opened 2 years ago
Hope this will be fixed soon, but right now I found 2 possible workarounds.
The first one is that you can define the dotenv:
part on task level, and this works as expected. The drawback is however that you need to duplicate it throughout the taskfile in each task that needs then environment variables. For example:
version: '3'
vars:
ACCOUNT: test
tasks:
print:
dotenv: [ ".env.{{.ACCOUNT}}" ]
cmds:
- echo $TEST_VAR
The other method is the use the strange fact that using variables seems to work ok with in the env:
and sh:
part. You can read and parse the .env file manually here. Which is very ugly/verbose, but that you only need to do it once in the taskfile. For example:
version: '3'
vars:
ACCOUNT: test
env:
TEST_VAR:
sh: cat .env.{{.ACCOUNT}} | grep -i "TEST_VAR=" | sed -e "s/TEST_VAR=//"
tasks:
print:
cmds:
- echo $TEST_VAR
(This will also print a warning: cat: .env.: No such file or directory
, but it still works. Pretty sure the command gets evaluated twice, once on general setup, and once again for the setup of the task.)
Taskfile.yml:
.env.test:
.env.other:
should be
lalala
.I guess dotenv is evaluated before command line args.