Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I override a typesafe config list value on the command line?

I have an application.conf file with a structure like the following:

poller {   datacenters = [] } 

I would like to override "datacenters" on the command line.

For other configuration keys whose values are simple types (strings, numbers) I can override using -Dpath.to.config.value=<value>, and this works fine.

However, I can't seem to find a way to do this for lists. In the example above, I tried to set "datacenters" to ["SJC", "IAD"] like so: -Dpoller.datacenters="['SJC', 'IAD']", but I get an exception that the key value is a string, not a list.

Is there a way to signal to the typesafe config library that this value is a list?

like image 585
Michael Frank Avatar asked Apr 24 '13 21:04

Michael Frank


2 Answers

An alternative syntax is implemented in version 1.0.1 for this:

-Dpoller.datacenters.0=SJC -Dpoller.datacenters.1=IAD 
like image 180
Patrik Nordwall Avatar answered Sep 20 '22 01:09

Patrik Nordwall


I had the same issue some weeks ago, and finally dived into the source code to understand what's going on:

  • This feature is not implemented, it's not possible to define a list using command line argument

Fixing it wouldn't be that hard, but someone need to take time to do it.

like image 27
Alois Cochard Avatar answered Sep 18 '22 01:09

Alois Cochard