Adding value dynamically in buildout configuration
Asked Answered
H

1

6

I am looking for populating value, in zc.buildout configuration, by evaluating certain criteria. For example,

if fqdn endswith '.net' then hostname = this_pkg_server else hostname = that_pkg_server

I am looking to build site specific configuration. I can evaluate fqdn with macro but how to populate that value in configuration?

Thanks

Hurdle answered 3/5, 2016 at 4:15 Comment(0)
R
7

The simplest answer is to use the wonderful mr.scripty.

Page on PyPI:

Untested example:

[buildout]
parts =
    hostname 

[hostname]
recipe=mr.scripty
pkg_server=
    ... import os
    ... if os.environ.get('HOSTNAME', '').endswith('.net'):
    ...     return 'this_pkg_server'
    ... return 'that_pkg_server'

You can then use across your buildout the returned value as ${hostname:pkg_server}.

There is a more complex solution, i.e. writing your own buildout recipe. It is not that easy, but the effort may not be worth the task.

Rockabilly answered 3/5, 2016 at 6:9 Comment(2)
Thanks for showing me this option. I was reading through manual and got conditional section. That too helped me for now. But for sure your solution is better one.Hurdle
You are welcome :) And thanks to you because you pointed me to conditional sections, whose existence I did not know!Rockabilly

© 2022 - 2024 — McMap. All rights reserved.