a8m / envsubst

Environment variables substitution for Go
MIT License
764 stars 83 forks source link

Feature Request - Loop by pattern matching. #5

Open brendanjerwin opened 7 years ago

brendanjerwin commented 7 years ago

I have a case where I need to create multiple entries in a config file based on the existence of environment variables. (its for a reverse proxy and I want to be able to add new entries simply by adding additional environment variables)

Something like:

Env Vars:

SRVCS_FIRST_HOSTNAME=sample.service.com
SRVCS_FIRST_DEST=internal.server.name
SRVCS_SECOND_HOSTNAME=second.service.com
SRVCS_SECOND_DEST=internal2.server.name

Template:

${SRVCS_*_<
   host: ${HOSTNAME}
   destination: ${DEST}

>}

Result:

   host: sample.service.com
   destination: internal.server.name

   host: second.service.com
   destination: internal2.server.name

Any thoughts on this idea? I think it'd be pretty handy.

zimbatm commented 7 years ago

I would recommend using a templating language like confd for any logic more complicated than selecting default values.