stale-nightfall-29801
11/16/2021, 9:57 AMextra_env_vars
in pants.toml
that includes ==
(e.g public and private keys)
I can add multiline values with '''
or """
but if I add one that contains (or maybe just ends) in ==
then I get the following errors (see thread)happy-kitchen-89482
11/16/2021, 3:30 PMstale-nightfall-29801
11/16/2021, 3:41 PMextra_env_vars = [
"ENVIRONMENT=test",
'''JWT_SECRET=-----BEGIN RSA PRIVATE KEY-----
SOME KEY TEXT==
-----END RSA PRIVATE KEY-----''',
'''JWT_PUBLIC=-----BEGIN PUBLIC KEY-----
SOME KEY TEXT==
-----END PUBLIC KEY-----''']
curved-television-6568
11/16/2021, 4:40 PMIn [1]: import re
In [2]: r = re.compile(r"([A-Za-z_]\w*)=(.*)")
In [3]: var = '''JWT_SECRET=-----BEGIN RSA PRIVATE KEY-----
...: SOME KEY TEXT==
...: -----END RSA PRIVATE KEY-----'''
In [4]: var
Out[4]: 'JWT_SECRET=-----BEGIN RSA PRIVATE KEY-----\nSOME KEY TEXT==\n-----END RSA PRIVATE KEY-----'
In [5]: print(var)
JWT_SECRET=-----BEGIN RSA PRIVATE KEY-----
SOME KEY TEXT==
-----END RSA PRIVATE KEY-----
In [6]: r.match(var)
Out[6]: <re.Match object; span=(0, 42), match='JWT_SECRET=-----BEGIN RSA PRIVATE KEY-----'>
In [7]: _6[1]
Out[7]: 'JWT_SECRET'
In [8]: _6[2]
Out[8]: '-----BEGIN RSA PRIVATE KEY-----'
In [9]:
Regexp from: https://github.com/pantsbuild/pants/blob/69fdaaf86a191e1c3fe2fef9d9532b2665070d16/src/python/pants/engine/environment.py#L17
Used here:
https://github.com/pantsbuild/pants/blob/69fdaaf86a191e1c3fe2fef9d9532b2665070d16/src/python/pants/engine/environment.py#L65-L67
name_value_match = name_value_re.match(env_var)
if name_value_match:
check_and_set(name_value_match[1], name_value_match[2])
pants.toml
file, and define the env var in the env invoking pants. That way, the value will be picked up as defined.
Does that make sense, and is it a workable approach for your use case @stale-nightfall-29801 ?stale-nightfall-29801
11/16/2021, 4:47 PMpants.toml
as the test environment already has them defined